maven 旧Java代码库的MVN问题--依赖关系冲突

j9per5c4  于 2022-11-22  发布在  Maven
关注(0)|答案(1)|浏览(164)

我有一个旧的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]
有什么想法吗?

omvjsjqw

omvjsjqw1#

我喜欢问一个问题就能让你头脑清醒,然后把它弄明白!
1.了解我正在寻找的是一种覆盖 * 插件 * 依赖关系的方法
1.找到了这个:How to override a plugin's dependency in Maven
1.检查了依赖路径,发现如果我强制org.webjars.npm.glob使用7.1.1,事情就会解决。
1.将此添加到<plugin>元素加载wro4j

<dependencies>
    <dependency>
        <groupId>org.webjars.npm</groupId>
        <artifactId>glob</artifactId>
        <version>7.1.1</version>
    </dependency>
</dependencies>

瞧!

相关问题