Gradle编译并jar java类的子集
我想编译(使用不同的targetCompatibility和sourceCompatibility)和jar整个main/src/java文件夹的一小部分 所以我有Gradle编译并jar java类的子集,gradle,Gradle,我想编译(使用不同的targetCompatibility和sourceCompatibility)和jar整个main/src/java文件夹的一小部分 所以我有 main/src/java/com/interface/A.java main/src/java/com/interface/B.java main/src/java/com/logic/C.java 我想将A和B编译成一个jar“projectname\u projectversion\u interface.jar”,并使用不
main/src/java/com/interface/A.java
main/src/java/com/interface/B.java
main/src/java/com/logic/C.java
我想将A和B编译成一个jar“projectname\u projectversion\u interface.jar”,并使用不同的编译器版本
这可能吗?我该怎么做
谢谢我建议使用单独的源代码集:
apply plugin: "java"
sourceSets {
main {
java {
exclude "com/interface/A.java"
exclude "com/interface/B.java"
}
}
api {
java {
srcDir "src/main/java"
include "com/interface/A.java"
include "com/interface/B.java"
}
}
}
如果main
依赖于api
,则添加如下内容:
sourceSets.main.compileClasspath += sourceSets.api.output
可以在编译任务级别上调整源/目标兼容性:
compileApiJava {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
要使用不同于运行Gradle本身的JDK的编译器,必须设置编译器可执行文件:
compileApiJava {
options.fork = true
options.forkOptions.executable = "/path/to/compiler/executable"
}
这可能会在某种程度上降低构建速度
有关进一步的API详细信息,请查看。我添加了以下内容:任务jarApi(类型:Jar){dependsOn compileApiJava from sourceset.API.output分类器='API'}任务sourcesApiJar(类型:Jar,dependsOn:apiClasses){classifier='API sourceset.API.allSource}正确,我忘了不是为每个源代码集自动添加Jar任务。