我有一个多项目项目,其核心项目ace2
依赖于该项目;它有依赖性。即使使用dataentry2
配置,我似乎也无法将传递依赖关系发送到其他项目web-inf\lib
,War的provided
目录中(是的,我希望{ {1}}等。包括依赖项)。更重要的是,标记为compile
/ testCompile
的依赖关系也会在那里结束。所以我似乎错过了一些重要的东西。
总体项目:
testRuntime
我还尝试了ace2自己allprojects {
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
repositories {
mavenCentral()
}
}
project(':ace2') {
configurations {
provided
}
sourceSets {
main.compileClasspath += configurations.provided
test.compileClasspath += configurations.provided
test.runtimeClasspath += configurations.provided
}
eclipse {
classpath {
//Add the provided configuration items to the Eclipse classpath
plusConfigurations += [ configurations.provided ]
//But don't export them
noExportConfigurations += [ configurations.provided ]
}
}
dependencies {
compile('org.apache.poi:poi:3.11')
compile('org.apache.poi:poi-ooxml:3.11')
....
provided "org.apache.tomcat:tomcat-catalina:8.0.22"
....
testCompile('junit:junit:4.12')
}
}
project(':dataentry2') {
apply plugin: 'war'
dependencies {
compile project(':ace2')
}
}
中ace2
项目中的所有内容。
如果我能解决,那么noExportConfigurations应该得到尊重'问题然后我可以将build.gradle
,testCompile
添加到testRuntime
。
为什么noExportConfigurations
(或其他什么)不适合我的任何想法?
我认为noExportConfigurations
项目中noExportConfigurations
的位置与另一个项目中的eclipse的范围不同。我试图把它移到主项目的顶级:ace2
,但我不知道语法。以下不起作用:
build.gradle
感谢Andreas的评论。我在https://github.com/oehm-smith/gradleMultiprojectProvided创建了一个对我不起作用的裸骨示例。
根据您的评论,我做了一个Eclipse>右键单击项目区域>出口>战争选择' apir' Web项目和一些目标文件。这个.war包含tomcat和junit jar。
你可以尝试一下 - 有一个https://github.com/oehm-smith/gradleMultiprojectProvided/blob/master/README.md
Gradle Multiproject with a提供的范围/配置。从CL运行战争会创建一个.war,并且没有标记为'提供的罐子。但是运行Eclipse>在Tomcat上运行,提供的和测试的jar转到webinf / lib。
noExportConfigurations += [ project(':ace2').configurations.provided ]
现在在Eclipse中做:
1. cd master
2. gradle war
3. jar tvf ../apir/build/libs/apir.war | grep jar
4. Observe no 'tomcat' jars are in the war