编译期间不同的jar版本 - Gradle项目(IntelliJ和Eclipse中都有)

时间:2015-09-22 05:57:53

标签: eclipse intellij-idea gradle jar multi-module

我有一个多模块项目,我正在使用Gradle。有一个模块Data,我对Neo4J有依赖关系。它使用了lucene-core - 版本3.6.2。

我在另一个模块中使用此模块作为依赖项,我在使用Jena-Text -version 1.1.2,它使用lucene-core版本4.6.1。现在,我遇到了冲突,所以我为Gradle运行了dependencyInsight插件,并在oe模块中排除了Neo4J的依赖项,因为我不需要它们。在lucene版本4.6.1中使用gradle编译代码很好。

问题是,每当我尝试在oe模块中编码时,我都会从lucence 3.6.2获得自动完成的建议,但是当Gradle最终编译它时,它会在corect版本中执行,即4.6。 1。

例如,我想在Lucene中编写自己的Analyzer。编写分析器的方式已从3.6版更改为4.6版。现在变得很难编码,如果我的IDE一直告诉我,我正在写一个错误的代码,基于我最终不会使用的jar。这在IntelliJ Idea 13,Enterprise Edition和Eclipse Luna中都有发生。

这就是我排除它们的方式。

compile(project(":data")){
    exclude group:'org.springframework.data', module: 'spring-data-neo4j-rest'
    exclude group:'org.springframework.data', module: 'spring-data-neo4j'

}

这是在我的oe模块中为lucene-core运行depedencyInsight的结果。

/oe$ gradle -q dependencyInsight --configuration compile --dependency lucene-core
org.apache.lucene:lucene-core:4.6.1
+--- compile
+--- org.apache.jena:jena-text:1.1.2
|    \--- compile
+--- org.apache.lucene:lucene-analyzers-common:4.6.1
|    +--- compile
|    \--- org.apache.jena:jena-text:1.1.2 (*)
+--- org.apache.lucene:lucene-queries:4.6.1
|    \--- org.apache.lucene:lucene-queryparser:4.6.1
|         \--- org.apache.jena:jena-text:1.1.2 (*)
+--- org.apache.lucene:lucene-queryparser:4.6.1 (*)
\--- org.apache.lucene:lucene-sandbox:4.6.1
 \--- org.apache.lucene:lucene-queryparser:4.6.1 (*)

(*) - dependencies omitted (listed previously)

1 个答案:

答案 0 :(得分:2)

intellij中,您可以通过点击dependencies中模块的project structure标签上的向上/向下箭头来确定其使用的jar的优先级。不理想,但应修复代码完成问题。