我有一个包含以下包结构的项目
SRC / COM / A1
SRC / COM / A2
SRC / COM / A3
src / com / a4
我编写了一个gradle脚本来构建jar,其中包含所有包的已编译java文件。我想在jar里面只有“a2”和“a4”包。 但是:a2和a4中的类指的是“a1”和“a3”中的类
答案 0 :(得分:4)
您实际上想要将项目拆分为多项目。仅包含项目中的特定包容易出错。 Gradle有很多关于多项目构建的文档: https://docs.gradle.org/current/userguide/multi_project_builds.html
如果您仍想从JAR中排除a1和a3,可以尝试以下方法:
task myJar(type: Jar) {
from sourceSets.main.output
exclude 'a1/**'
exclude 'a3/**'
}
查看Jar任务的文档以获取详细信息: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html
但是,我不建议这样做。我们通过指定excludes和includes来实现这一点,并且这一直是bug的来源,导致NoClassDefFoundError。