为模块调用的Gradle uploadArchives任务,即使未显式配置
我有一个Java Gradle 2.14.1项目,其中有几个子项目:为模块调用的Gradle uploadArchives任务,即使未显式配置,gradle,Gradle,我有一个Java Gradle 2.14.1项目,其中有几个子项目:a、b、c和nono是“特殊的”,因为它在src/main/java中不包含任何内容,它只有一些使用所有模块的e2e测试。我想将maven插件应用于a、b和c,但不应用于no。这是我的代码(以Bash会话的形式;请忽略没有代码的事实-这是复制我的问题的最简单的事情): 也就是说,no/build.gradle文件禁用jar任务(因为jar没有任何内容)。主build.gradle文件配置java和maven插件,但是maven插
a
、b
、c
和no
no
是“特殊的”,因为它在src/main/java
中不包含任何内容,它只有一些使用所有模块的e2e测试。我想将maven
插件应用于a
、b
和c
,但不应用于no
。这是我的代码(以Bash会话的形式;请忽略没有代码的事实-这是复制我的问题的最简单的事情):
也就是说,no/build.gradle
文件禁用jar任务(因为jar没有任何内容)。主build.gradle
文件配置java
和maven
插件,但是maven
插件在no
模块中被显式省略。此外,还添加了一些调试输出,以查看发生了什么
以下是输出(有点健谈,我希望可以):
有趣的是:输出表明没有为no
模块配置maven
插件(notapplicationmaven for project:no
),没有为:no
模块列出上传存档
任务,但在Gradle输出中仍然表示调用了此任务,并且失败。我还可以使用/gradlew:no:uploadArchives
直接调用这个“幻影”任务,它以同样的方式失败,而不是告诉我任务丢失
我的配置有什么问题
maven-test $ find .
.
./a
./b
./build.gradle
./c
./gradle
./gradle/wrapper
./gradle/wrapper/gradle-wrapper.jar
./gradle/wrapper/gradle-wrapper.properties
./gradle.properties
./gradlew
./gradlew.bat
./no
./no/build.gradle
./settings.gradle
maven-test $ cat settings.gradle
rootProject.name = 'maven-test'
include ':a'
include ':b'
include ':c'
include ':no'
maven-test $ cat build.gradle
subprojects {
apply plugin: 'java'
if (it != project(':no')) {
println 'applying maven for ' + it
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://build")
}
}
}
} else {
println 'not applying maven for ' + it
}
defaultTasks = ['clean', 'build']
afterEvaluate { project ->
println("================ $project.path tasks:")
project.tasks.each { task ->
println(" $task.name")
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.14.1'
}
maven-test $ cat no/build.gradle
jar.enabled = false
maven-test $ ./gradlew clean uploadArchives
applying maven for project ':a'
applying maven for project ':b'
applying maven for project ':c'
not applying maven for project ':no'
================ :a tasks:
assemble
build
buildDependents
buildNeeded
check
classes
clean
compileJava
compileTestJava
install
jar
javadoc
processResources
processTestResources
test
testClasses
uploadArchives
================ :b tasks:
assemble
build
buildDependents
buildNeeded
check
classes
clean
compileJava
compileTestJava
install
jar
javadoc
processResources
processTestResources
test
testClasses
uploadArchives
================ :c tasks:
assemble
build
buildDependents
buildNeeded
check
classes
clean
compileJava
compileTestJava
install
jar
javadoc
processResources
processTestResources
test
testClasses
uploadArchives
================ :no tasks:
assemble
build
buildDependents
buildNeeded
check
classes
clean
compileJava
compileTestJava
jar
javadoc
processResources
processTestResources
test
testClasses
:a:clean
:b:clean
:c:clean
:no:clean
:a:compileJava UP-TO-DATE
:a:processResources UP-TO-DATE
:a:classes UP-TO-DATE
:a:jar
:a:uploadArchives
:b:compileJava UP-TO-DATE
:b:processResources UP-TO-DATE
:b:classes UP-TO-DATE
:b:jar
:b:uploadArchives
:c:compileJava UP-TO-DATE
:c:processResources UP-TO-DATE
:c:classes UP-TO-DATE
:c:jar
:c:uploadArchives
:no:compileJava UP-TO-DATE
:no:processResources UP-TO-DATE
:no:classes UP-TO-DATE
:no:jar SKIPPED
:no:uploadArchives FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':no:uploadArchives'.
> Could not publish configuration 'archives'
> Cannot publish artifact 'no.jar (com.test:no:0.1.0-SNAPSHOT)' (/Users/wujek/Development/IdeaProjects/maven-test/no/build/libs/no-0.1.0-SNAPSHOT.jar) as it does not exist.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 1.145 secs