我有一个旧的Java代码库(1.7)。我试图让它在一个新版本的JVM上运行,通常我让它编译。我能解决的是在构建过程中使用wro4j
的部分。Maven给我这个错误:
Plugin ro.isdc.wro4j:wro4j-maven-plugin:1.10.1 or one of its dependencies could not be resolved:
Failed to collect dependencies for ro.isdc.wro4j:wro4j-maven-plugin:jar:1.10.1 ():
Could not resolve version conflict among
[ro.isdc.wro4j:wro4j-maven-plugin:jar:1.10.1 -> ro.isdc.wro4j:wro4j-extensions:jar:1.10.1 -> org.webjars.npm:jshint:jar:2.11.0 -> org.webjars.npm:minimatch:jar:[3.0.2,3.1),
ro.isdc.wro4j:wro4j-maven-plugin:jar:1.10.1 -> ro.isdc.wro4j:wro4j-extensions:jar:1.10.1 -> org.webjars.npm:jshint:jar:2.11.0 -> org.webjars.npm:cli:jar:[1.0.0,1.1) -> org.webjars.npm:glob:jar:[7.1.1,8) -> org.webjars.npm:minimatch:jar:[3.1.1,4)
两个依赖链都以minimatch结束--一个需要[3.1.1,4],另一个需要[3.0.2,3.1]。我有一种感觉,凡是适用于3.1的东西都将适用于3.1.1,但我不知道如何“强制”(或欺骗?)MVN允许这样做。
这是POM文件中使用wro 4j的部分:
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>1.10.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<minimize>true</minimize>
<wroFile>${basedir}/src/main/resources/wro.xml</wroFile>
<contextFolder>${basedir}/WebContent/</contextFolder>
<destinationFolder>${basedir}/WebContent/js/compiled</destinationFolder>
</configuration>
</plugin>
wro4j
在POM文件中的任何其他地方都 * 没有 * 声明为依赖项。错误消息中的整个依赖项链也是如此。问题是:
org.webjars.npm:cli:jar:[1.0.0,1.1) -> org.webjars.npm:glob:jar:[7.1.1,8) -> org.webjars.npm:minimatch:jar:[3.1.1,4)
org.webjars.npm:jshint
需要minimatch [3.0.2,3.1]
和org.webjars.npm:cli:
-后者又间接依赖于minimatch [3.1,4]
有什么想法吗?
1条答案
按热度按时间omvjsjqw1#
我喜欢问一个问题就能让你头脑清醒,然后把它弄明白!
1.了解我正在寻找的是一种覆盖 * 插件 * 依赖关系的方法
1.找到了这个:How to override a plugin's dependency in Maven
1.检查了依赖路径,发现如果我强制
org.webjars.npm.glob
使用7.1.1
,事情就会解决。1.将此添加到
<plugin>
元素加载wro4j
:瞧!