假设一个项目布局是这样的:
allprojects {
apply plugin: "java"
configurations {
provided
compile.extendsFrom(provided)
}
}
project("a") {
dependencies {
compile("foo:bar:1.0")
...
provided("bar:baz:3.14")
...
}
}
project("b") {
dependencies {
compile("abc:def:1.0")
...
provided("xyz:foo:3.14")
...
}
}
dependencies {
compile(project(":a"))
compile(project(":b"))
}
现在,我需要一个任务,将根项目(及物动词)的所有依赖拷贝到某个目录,但不包括provided
配置。 我怎样才能做到这一点?
与此有点痴迷,并试图找出如何做到这一点。 我得到了它与下列文件的gradle工作。 注意配置部分,在那里我复制的依赖关系。
allprojects {
apply plugin: "java"
configurations {
provided
}
sourceSets {
main {
compileClasspath += configurations.provided
}
}
repositories {
mavenCentral()
}
}
project("a") {
dependencies {
compile("jdom:jdom:1.0")
provided("javax.servlet:servlet-api:2.5")
}
}
project("b") {
dependencies {
compile("javax.jcr:jcr:2.0")
provided("commons-logging:commons-logging:1.0")
}
}
dependencies {
compile(project(":a"))
compile(project(":b"))
}
task copyDependencies(type:Copy) {
from configurations.compile
into 'build/dependencies'
}
我认为这是一个简单的解决这个问题,但没有弄明白。 但是这一个工程。 唯一的一点是,你必须提供的配置加入到思想/月食类路径也使IDE集成工作作为espected。
只复制编译依赖(即未在所提供的依赖性集)到一个目录,这应该工作:
task copyDependencies(type:Copy) {
from (configurations.compile - configurations.provided)
into 'build/dependencies'
}
希望这可以帮助。
看看还在providedCompile没有战争插件的问题。
还有的概念SpringSource的propdeps摇篮插件特色提供的配置支持。