java-如何在gradle构建期间仅在jar中包含某些软件包
作者:互联网
我有一个具有以下包装结构的项目
src / com / a1
src / com / a2
src / com / a3
src / com / a4
我已经编写了gradle脚本来构建jar,其中包含所有软件包的已编译Java文件.我只需要jar中的“ a2”和“ a4”包.
但是:a2和a4中的类是指“ a1”和“ a3”中存在的类
解决方法:
>多项目构建
您实际上想将您的项目拆分为一个多项目.仅包含项目中的特定软件包是容易出错的. Gradle拥有有关多项目构建的出色文档:
https://docs.gradle.org/current/userguide/multi_project_builds.html
>在Jar任务中排除
如果仍要从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
但是,我不建议这样做.我们通过指定排除和包含来使用Ant来完成此操作,并且它一直是导致NoClassDefFoundError的错误的来源.
标签:build-gradle,gradle,build,java 来源: https://codeday.me/bug/20191028/1954747.html