【发布时间】:2014-10-26 20:31:57
【问题描述】:
我正在尝试创建一个基于 gradle 的多模块项目。还有一个项目包含不同的 gradle 脚本,这些脚本支持可插入的构建配置。其中一个脚本用于将工件发布到 Maven 存储库。这是该脚本的内容:
apply plugin: 'maven-publish'
configure(subprojects.findAll()) {
if (it.name.endsWith('web')) {
publishing {
publications {
mavenWeb(MavenPublication) {
from components.web
}
}
}
} else {
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
}
}
build.dependsOn publishToMavenLocal
此脚本包含在其他项目的构建 gradle 文件中。
apply from: '../../food-orders-online-main/artifact-publish.gradle'
当我运行构建任务时,它总是显示 publishToMavenLocal 任务是最新的,我无法在本地存储库中找到工件。我做错了吗?
【问题讨论】:
-
也许检查 --info 和 --debug 日志。
-
:food-orders-online-admin-business:publishToMavenLocal (Thread[main,5,main]) 已启动。 :food-orders-online-admin-business:publishToMavenLocal 跳过任务 ':food-orders-online-admin-business:publishToMavenLocal' 因为它没有操作。 :food-orders-online-admin-business:publishToMavenLocal 最新 :food-orders-online-admin-business:publishToMavenLocal (Thread[main,5,main]) 已完成。耗时 0.007 秒。
-
我已经知道任务被跳过了。我的问题是为什么。我认为 subprojects.findAll() 不会返回任何东西。那么如何访问所有子项目呢?我可以在每个项目中分别做,但如果我能做到,那就是重复和愚蠢。
标签: gradle publish artifacts multi-project