我有一个在Swagger上具有编译依赖关系的项目,它带来了jackson databind v2.4.5,还有一个在库上具有testCompile依赖关系的项目,该库使用了AWS SDK,它带来了jackson databind v2.6.6。
从gradle运行测试时,一切正常,正确更新的jackson依赖项v2.6.6位于类路径上:
+--- io.swagger:swagger-jersey2-jaxrs:1.5.10
| +--- io.swagger:swagger-jaxrs:1.5.10
| | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.4.5
| | | +--- com.fasterxml.jackson.core:jackson-core:2.4.5 -> 2.6.6
| | | \--- org.yaml:snakeyaml:1.12 -> 1.13
| | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.4.5
| | | +--- com.fasterxml.jackson.core:jackson-core:2.4.5 -> 2.6.6
| | | +--- com.fasterxml.jackson.core:jackson-databind:2.4.5 -> 2.6.6
intellij依存关系包含两个版本:
然而,当从IntelliJ运行测试时,IntelliJ会创建一个“类路径jar”(因为类路径太长)。检查META-INF/MANIFEST中的类路径时。MF,我可以看到只包括较小的jar版本(2.4.5)。
当测试使用AWS SDK时,这会导致异常:
java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper;
因为旧的jackson API不包含此方法。
这是可以预防的吗?我目前正在使用一种变通方法,在testCompile依赖项中添加了jackson databind依赖项的2.6.6版本。但我想避免这种情况,因为
注意,我们使用IntelliJ test runner只是因为它比在本地工作站上通过gradle运行测试更快(主要是由于增量编译)。
虽然Gradle解决了依赖关系,但无法解释为什么IDE仍然有这个库的两个版本。您可以尝试手动排除jackson databind v2.4.5上的可传递依赖项,如下所示:
compile('io.swagger:swagger-jersey2-jaxrs:1.5.10') {
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
}
然后同步Gradle和IDEA项目。
知道为什么会这样吗?我的同事可以毫无问题地将项目导入他们的IntelliJ。 单击不执行任何操作。 系统: null
我有一个类似于 B项目依赖于A项目 项目B的settings.gradle和build.gradle如下所示 格雷德尔酒店 格雷德尔先生 当我尝试在本地机器(Gradle版本3.2)上构建项目B时,它成功构建,一切看起来都很好。 当我尝试在jenkins中构建相同的项目(与我的本地版本相同的gradle版本)时,我得到了错误 它看起来像詹金斯,它是无法计算出相对路径。 我该怎么解决这个问题? 在j
是否有办法将GradleJava项目导入IntelliJ 2017.2. x并应用一些设置,例如 代码样式 vcs设置 从Gradle在项目层面? 我注意到例如Grails框架使用了idea-gradle-plugin,但这只能与Gradle任务结合使用。 我不想使用Gradle任务生成IntelliJ项目文件。每当我导入文件。 这可能吗?
我通过这个链接将一个gradle项目作为依赖项导入另一个gradle项目。有没有办法将maven项目作为依赖项包含到gradle项目中?
我正试图将一个libgdx项目(桌面、ios和android)导入到我mac上的eclipse中,我在本地的git存储库中。 当我试图将我的项目导入到eclipse(导入>>Gradle>>Gradle项目,然后为整个libgdx项目添加我的根文件夹)时,我试图“构建模型”,但随后我得到了一个错误:
我有一个关于智能想法11的小问题。我刚刚从subversion导入了一个项目--它是一个maven项目。但是我在maven库依赖项中遇到了一个问题,因此我无法自动包含所有maven依赖项-IDEA仅在我打开该类时才显示依赖项错误/这就是我在这里得到的结果: 所以我希望所有的依赖项都自动添加--这是可能的还是我必须通过所有的类文件来识别和添加maven依赖项?! 但我认为逻辑上它不会包含和检查前面的