Java 附加来自其他配置的依赖项
我的项目是一个遵循标准约定(src/main、src/test..)的Java项目。我正在尝试编写一个简单的Gradle任务,它将发出两个jar文件:Java 附加来自其他配置的依赖项,java,gradle,Java,Gradle,我的项目是一个遵循标准约定(src/main、src/test..)的Java项目。我正在尝试编写一个简单的Gradle任务,它将发出两个jar文件: Gradle发出的包含我的应用程序代码的“默认”jar 一个jar,只包含运行它们所需的测试类和依赖项(例如Junit)。这个jar不应该包含仅由非测试代码所需的依赖项(例如下面示例中的Guava) 我试图在下面的testJar任务中使用“testCompile”,但这也会选择非测试jar。因此,我创建了一个单独的配置,只列出了测试依赖项,但
- Gradle发出的包含我的应用程序代码的“默认”jar
- 一个jar,只包含运行它们所需的测试类和依赖项(例如Junit)。这个jar不应该包含仅由非测试代码所需的依赖项(例如下面示例中的Guava)
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenCentral()
}
configurations {
testJars
}
dependencies {
compile group: 'com.google.guava', name: 'guava', version: '14.0.1'
testJars group: 'junit', name: 'junit', version: '4.+'
//"testCompile append testJars"??
}
task testJar(type: Jar) {
classifier = 'tests'
from sourceSets.test.output
from { configurations.testJars.collect { it.isDirectory() ? it : zipTree(it) } }
}
假设自定义
testJars
配置是内置testCompile
配置的一个子集,您应该能够将配置
块更改为:
configurations {
testJars
testCompile {
extendsFrom testJars
}
}
它将扩展
testCompile
,以包括testjar
拥有的所有内容。我认为这将为您提供编译测试代码所需的类路径。不完全确定您正在尝试做什么,但将此添加到配置
块可能会实现它:testCompile{extendsFrom testJars}