al.*_*al. 6 gradle build.gradle
我有一个包含3个不同项目的多项目配置.
其中2个项目依赖于第3个项目,我将其命名为"核心".根据项目的不同,'core'必须编译为jar,源分别为1.4和1.6,分别为输出core-1.4.jar和core-1.6.jar.
是否可以使用单个build.gradle执行此操作,或者最好的方法是什么?如何为两个项目中的每一个指定依赖项中特定的jar?
Pet*_*ser 12
问题基本上是关于如何生成和使用基于相同Java代码的工件的两种变体.如果你真的需要生成两个只有目标兼容性不同的Jars(我首先要问的话),实现这一点的一种方法是使用Java插件的main源集(以及随之而来的任务)来生成第一个变体,以及产生第二个变体的新源集.此外,第二个变体需要通过自己的配置发布,以便依赖项目可以引用它.这看起来如下:
核心/的build.gradle:
apply plugin: "java"
sourceCompatibility = 1.4
sourceSets {
main1_4 {
def main = sourceSets.main
java.srcDirs = main.java.srcDirs
resources.srcDirs = main.resources.srcDirs
compileClasspath = main.compileClasspath
runtimeClasspath = main.runtimeClasspath
}
}
compileJava {
targetCompatibility = 1.6
}
compileMain1_4Java {
targetCompatibility = 1.4
}
jar {
archiveName = "core-1.6.jar"
}
main1_4Jar {
archiveName = "core-1.4.jar"
}
configurations {
archives1_4
}
artifacts {
archives1_4 main1_4Jar
}
Run Code Online (Sandbox Code Playgroud)
在依赖项目中:
dependencies {
compile project(":core") // depend on 1.6 version
compile project(path: ":core", configuration: "archives1_4") // depend on 1.4 version
}
Run Code Online (Sandbox Code Playgroud)
所有这些都可以(但不一定)在同一个构建脚本中完成.有关详细信息,请参阅Gradle用户指南中的"多项目构建"一章.
| 归档时间: |
|
| 查看次数: |
12184 次 |
| 最近记录: |