12

我正在尝试命名由 gradle 构建的工件。看看这个build.gradle

archivesBaseName='this_is_ignored'
apply plugin: 'groovy'
archivesBaseName='this_is_also_ignored'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.+'
}

我也试过gradle.properties

archivesBaseName=`this_is_ignored_too`

在每种情况下,都会./gradlew build根据项目所在的文件夹生成一个 .jar 文件(据我所知project.name,我只是希望用 覆盖它archivesBaseName)。

换句话说,我想要:

~/gradle-helloworld > ./gradlew build

生成this_is_ignored.jar,但它正在生成gradle-helloworld.jar

有任何想法吗?

4

1 回答 1

7

(将Peter的评论变成 CW 的答案。)

如果您archivesBaseName在应用插件之前设置,您将引入一个动态属性(它会给出弃用警告)。然后,此动态属性将隐藏插件引入的属性,这就是为什么第二个分配也没有预期效果的原因。解决方案是仅在应用插件后设置属性。

于 2014-12-24T12:08:17.757 回答