我有以下项目配置(纯java):
/
/Base_module
/A_module
A_module依赖于Base_module。
我想要一个 .jar ,其中包含A_module类 + Base_module类,但无法实现。
使用以下配置,我只能为每个模块实现不同的jar:
settings.gradle
include 'Base_module', 'A_module'
的build.gradle
....
project(':Base_module') {
}
project(':A_module') {
dependencies {
compile project(':Base_module')
}
}
....
我需要添加什么来实现完整的 .jar ?
提前致谢。
答案 0 :(得分:1)
您可以尝试在根构建脚本中创建Jar类型的自定义任务,该脚本将包括所有子项目的所有类或仅包含许多子项目。它可能类似于:
//declare an array, containing subproject names, which classes you want to collect
def projectsToCollect = [':Base_Module',':A_Module']
//create a custom task, which assembles an jar-archive and depends on subproject compilation tasks,
//that causes sibprojects sources been compiled before thist task runs
task singleJar( type: Jar , dependsOn: projectsToCollect.collect{ it+":compileJava"}) {
//set new jar name
baseName = 'singleJar'
//set files, which will be included in this new jar
from files(projectsToCollect.collect{ project(it).sourceSets.main.output })
}
您可以播放它,修改源集,如果您的子项目中有自定义,或者您想要添加测试。
答案 1 :(得分:0)