gpt4 book ai didi

java - Gradle 多模块 jar

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:21 24 4
gpt4 key购买 nike

我有以下项目配置(纯 java):

/
/Base_module
/A_module

A_module 依赖于 Base_module。

我想要一个包含 A_module 类 + Base_module 类的 .jar,但做不到。

使用以下配置,我只能为每个模块实现不同的 jar:

设置.gradle

include 'Base_module', 'A_module'

构建.gradle

....
project(':Base_module') {
}

project(':A_module') {
dependencies {
compile project(':Base_module')
}
}
....

我需要添加什么才能获得完整的 .jar

提前致谢。

最佳答案

您可以尝试在您的根构建脚本中创建一个 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 })
}

如果您在子项目中有一些自定义,或者如果您想添加测试,您可以尝试修改源集。

关于java - Gradle 多模块 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com