Get BuildType VersionName for ArtifactoryPublication
I am using the following gradle to create a snapshot build type with a filename including the current commit hash and "SNAPSHOT" as suffix:
def libraryGroupId = 'my.group.id'
def libraryVersion = '1.7.2'
def libraryArtifactId = 'core'
android {
defaultConfig {
versionName libraryVersion
}
buildTypes {
debug {
versionNameSuffix '-debug'
}
snapshot {
versionNameSuffix '-SNAPSHOT-' + getCommitHash()
}
}
libraryVariants.all { variant ->
variant.outputs.all {
def versionName = variant.variantData.variantConfiguration.versionName
outputFileName = "${libraryArtifactId}-" + versionName + ".aar"
}
}
}
Furthermore I have an artifactory publishing task:
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
def artifactUrl = "$buildDir/outputs/aar/<??outputFileName??>"
println "#### artifactUrl: " + artifactUrl
artifact(artifactUrl)
pom.withXml {
...
}
}
}
}
Right now the "outputFileName" is always set to the last defined build type since variant.outputs.all is overriding it for each build type. So my question is:
How do I get the outputFileName
of my current build within the artifactory
publication closure?
Any other way is welcome. It doesn't have to be via a self-defined variable. But the artifactoryUrl should match with the generated /outputs/aar/<snapshot-filename>.aar
.
android gradle artifactory android-build-type
add a comment |
I am using the following gradle to create a snapshot build type with a filename including the current commit hash and "SNAPSHOT" as suffix:
def libraryGroupId = 'my.group.id'
def libraryVersion = '1.7.2'
def libraryArtifactId = 'core'
android {
defaultConfig {
versionName libraryVersion
}
buildTypes {
debug {
versionNameSuffix '-debug'
}
snapshot {
versionNameSuffix '-SNAPSHOT-' + getCommitHash()
}
}
libraryVariants.all { variant ->
variant.outputs.all {
def versionName = variant.variantData.variantConfiguration.versionName
outputFileName = "${libraryArtifactId}-" + versionName + ".aar"
}
}
}
Furthermore I have an artifactory publishing task:
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
def artifactUrl = "$buildDir/outputs/aar/<??outputFileName??>"
println "#### artifactUrl: " + artifactUrl
artifact(artifactUrl)
pom.withXml {
...
}
}
}
}
Right now the "outputFileName" is always set to the last defined build type since variant.outputs.all is overriding it for each build type. So my question is:
How do I get the outputFileName
of my current build within the artifactory
publication closure?
Any other way is welcome. It doesn't have to be via a self-defined variable. But the artifactoryUrl should match with the generated /outputs/aar/<snapshot-filename>.aar
.
android gradle artifactory android-build-type
add a comment |
I am using the following gradle to create a snapshot build type with a filename including the current commit hash and "SNAPSHOT" as suffix:
def libraryGroupId = 'my.group.id'
def libraryVersion = '1.7.2'
def libraryArtifactId = 'core'
android {
defaultConfig {
versionName libraryVersion
}
buildTypes {
debug {
versionNameSuffix '-debug'
}
snapshot {
versionNameSuffix '-SNAPSHOT-' + getCommitHash()
}
}
libraryVariants.all { variant ->
variant.outputs.all {
def versionName = variant.variantData.variantConfiguration.versionName
outputFileName = "${libraryArtifactId}-" + versionName + ".aar"
}
}
}
Furthermore I have an artifactory publishing task:
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
def artifactUrl = "$buildDir/outputs/aar/<??outputFileName??>"
println "#### artifactUrl: " + artifactUrl
artifact(artifactUrl)
pom.withXml {
...
}
}
}
}
Right now the "outputFileName" is always set to the last defined build type since variant.outputs.all is overriding it for each build type. So my question is:
How do I get the outputFileName
of my current build within the artifactory
publication closure?
Any other way is welcome. It doesn't have to be via a self-defined variable. But the artifactoryUrl should match with the generated /outputs/aar/<snapshot-filename>.aar
.
android gradle artifactory android-build-type
I am using the following gradle to create a snapshot build type with a filename including the current commit hash and "SNAPSHOT" as suffix:
def libraryGroupId = 'my.group.id'
def libraryVersion = '1.7.2'
def libraryArtifactId = 'core'
android {
defaultConfig {
versionName libraryVersion
}
buildTypes {
debug {
versionNameSuffix '-debug'
}
snapshot {
versionNameSuffix '-SNAPSHOT-' + getCommitHash()
}
}
libraryVariants.all { variant ->
variant.outputs.all {
def versionName = variant.variantData.variantConfiguration.versionName
outputFileName = "${libraryArtifactId}-" + versionName + ".aar"
}
}
}
Furthermore I have an artifactory publishing task:
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
def artifactUrl = "$buildDir/outputs/aar/<??outputFileName??>"
println "#### artifactUrl: " + artifactUrl
artifact(artifactUrl)
pom.withXml {
...
}
}
}
}
Right now the "outputFileName" is always set to the last defined build type since variant.outputs.all is overriding it for each build type. So my question is:
How do I get the outputFileName
of my current build within the artifactory
publication closure?
Any other way is welcome. It doesn't have to be via a self-defined variable. But the artifactoryUrl should match with the generated /outputs/aar/<snapshot-filename>.aar
.
android gradle artifactory android-build-type
android gradle artifactory android-build-type
edited Nov 12 '18 at 13:13
André Sousa
1,1481818
1,1481818
asked Nov 12 '18 at 13:02
Florian MeyerFlorian Meyer
103
103
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can generate publish task for each of your buildVariant.
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
and then call the right task - it should be something like publishAarSnapshotPublicationToMavenRepository
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setupartifactory { publish {defaults { publications(??) }}}
I think it should bepublications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal
– Florian Meyer
Nov 12 '18 at 14:25
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53262752%2fget-buildtype-versionname-for-artifactorypublication%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can generate publish task for each of your buildVariant.
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
and then call the right task - it should be something like publishAarSnapshotPublicationToMavenRepository
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setupartifactory { publish {defaults { publications(??) }}}
I think it should bepublications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal
– Florian Meyer
Nov 12 '18 at 14:25
add a comment |
You can generate publish task for each of your buildVariant.
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
and then call the right task - it should be something like publishAarSnapshotPublicationToMavenRepository
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setupartifactory { publish {defaults { publications(??) }}}
I think it should bepublications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal
– Florian Meyer
Nov 12 '18 at 14:25
add a comment |
You can generate publish task for each of your buildVariant.
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
and then call the right task - it should be something like publishAarSnapshotPublicationToMavenRepository
You can generate publish task for each of your buildVariant.
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
and then call the right task - it should be something like publishAarSnapshotPublicationToMavenRepository
answered Nov 12 '18 at 13:23
egoldxegoldx
754410
754410
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setupartifactory { publish {defaults { publications(??) }}}
I think it should bepublications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal
– Florian Meyer
Nov 12 '18 at 14:25
add a comment |
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setupartifactory { publish {defaults { publications(??) }}}
I think it should bepublications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal
– Florian Meyer
Nov 12 '18 at 14:25
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setup
artifactory { publish {defaults { publications(??) }}}
I think it should be publications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal– Florian Meyer
Nov 12 '18 at 14:25
Thanks, this helped a lot and seems to be exactly what i was looking for. Do you also know how to setup
artifactory { publish {defaults { publications(??) }}}
I think it should be publications("aar${versionName}")
, but again: where to get the versionName from in this case? FYI: I only got new tasks from the maven-publish plugin: publishAarSnapshotPublicationToMavenLocal– Florian Meyer
Nov 12 '18 at 14:25
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53262752%2fget-buildtype-versionname-for-artifactorypublication%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown