gradle项目中的路径配置
我有一个像这样的gradle项目gradle项目中的路径配置,gradle,Gradle,我有一个像这样的gradle项目 container/ dist/ mod1/ build.gradle mod2/ build.gradle mod3/ build.gradle build.gradle 基本上是一个有很多子模块的等级项目。我想做的是,当您在container/build.gradle上运行assembly时,它会在所有子项目上运行构建。那部分很容易。现在,我正试图实现所有配置设置和参数的集中化 这是我的container/build.gradle文件中的
container/
dist/
mod1/
build.gradle
mod2/
build.gradle
mod3/
build.gradle
build.gradle
subprojects {
apply plugin: 'java'
apply plugin: 'scala'
jar {
manifest.attributes provider: 'OnusPride'
}
property {
sourceCompatibility = 1.7
archivePath = file("dist")
}
ext {
springVersion = "3.2.1.RELEASE"
springSecurityWebVersion = "3.1.3.RELEASE"
springSecurityOauth2Version = "1.0.1.RELEASE"
jacksonCoreVersion = "2.1.2"
}
dependencies {
testCompile 'junit:junit:4.8.2'
}
}
我试图配置所有模块,当它们完成各种组装任务时,javajar、scalajar、war等,将输出放在container/dist文件夹中。我该怎么做
还有,有没有人有一个相当复杂、写得很好、多模块的gradle项目的例子。一些比hello world更实质的东西会非常有用。同时学习groovy和gradle有点难。我认为您有不同的选择。 一种解决方案可能是在子项目中引入一个公共任务,将AbstractArchiveTask类型的所有任务输出复制到dist文件夹。这看起来像这样:
subprojects{
task copyToDists(type:Copy){
into project.rootProject.file("dists")
from tasks.withType(AbstractArchiveTask)
}
}
这个解决方案有一些开销,并且不被认为是最佳实践,因为您开始在构建中处理东西。更好的方法是重新配置相应的任务,在所需文件夹中按默认值创建JAR、WAR和ZIP:
subprojects{
tasks.withType(AbstractArchiveTask){
destinationDir = project.rootProject.file("dists")
}
}
希望这有帮助
干杯,
勒内这是一个我还没有解决的问题,但我即将面对。我计划在
容器/build.gradle
中创建一个任务,该任务将在其所有子项目中找到工件,然后将它们复制到dist
目录中。我注意到您同时声明了scala和java插件,这将导致java代码生成两次。看见