maven-2 - Maven 类路径顺序问题

标签 maven-2 classpath

有谁知道在 Maven2 中设置特定类路径顺序的方法,而不是我目前遇到的随机顺序?

想要这样做有很多合理的理由:

  • 供应商提供了一个补丁 jar,其中包含先前发布的 jar 的重写类,因此补丁 jar 必须出现在类路径排序中的第一个。
  • 通过遍历 pom 依赖关系发现的类路径中发现的两个 jar 在同一包中包含具有不同签名的相同类。例如:

jboss jbossall-client 4.2.0.GA

org.hibernate hibernate 3.1

两者都包含: org.hibernate.util.ReflectHelper.class,但jbossall-client版本缺少getFastClass方法。

通过谷歌搜索,我发现这可能是 Maven 爱好者和面临这个特定问题的人们之间的争论点,但肯定有类路径排序的合理理由。

任何解决了这一特殊困境的人的任何建议将不胜感激!

谢谢

最佳答案

从版本 2.0.9 开始,maven 使用 pom 顺序作为类路径,因此您现在可以实际操作它。我们主要抑制对我们也直接包含的外部库的传递依赖。

摘自maven 2.0.9的发行说明:

MNG-1412 / MNG-3111 introduced deterministic ordering of dependencies on the classpath. In the past, natural set ordering was used and this lead to odd results. The ordering is now preserved from your pom, with dependencies added by inheritence added last. In builds that had conflicting or duplicate dependencies, this may introduce a change to the output. In short, if you have weird issues with 2.0.9, take a look at the dependencies to see if you have conflicts somewhere.

关于maven-2 - Maven 类路径顺序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/793054/

相关文章:

maven-2 - 如何在使用 exec 插件执行应用程序时添加类路径条目

java - 如何将 JAR 文件添加到 IBM WebSphere 服务器中的项目类路径?

java - 如何更改 Eclipse 默认类路径

java - 当 JUnit 类具有多个导入时,如何从 Windows CMD 窗口运行 JUnit 测试?

java - 配置 Maven 2 以在编译阶段打印出 javac 命令

java - maven-dependency-plugin 是否使用其他类型的工件解析而不是 maven 的其余部分?

maven-2 - 如何避免Maven在ssh主机真实性问题上构建停滞?

maven-2 - 捕获唯一的 Maven SNAPSHOT 内部版本号

java - JDBC 无法解析为 Eclipse 中的变量

java - Spring Maven 从资源文件夹中读取