Gradle + Eclipse + Multiproject:如何不导出作为依赖项依赖项的提供的JAR?

时间:2015-05-25 08:50:39

标签: java eclipse gradle multiple-projects

我有一个多项目项目,其核心项目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.gradletestCompile添加到testRuntime

为什么noExportConfigurations(或其他什么)不适合我的任何想法?

我认为noExportConfigurations项目中noExportConfigurations的位置与另一个项目中的eclipse的范围不同。我试图把它移到主项目的顶级:ace2,但我不知道语法。以下不起作用:

build.gradle
  • 操作系统:Windows 8
  • Java:1.8
  • Gradle(命令行):2.4
  • Eclipse:STS 3.6.4(Eclipse 4.4.2)
  • Eclipse Gradle:Gradle IDE 3.6.4.201503050952-RELEASE org.springsource.ide.eclipse.gradle.feature.feature.group Pivotal Software,Inc。

感谢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

0 个答案:

没有答案