有没有一种方法可以确定gradle依赖项(如在eclipseide中)在类路径(编译和运行时)中的顺序?

有没有一种方法可以确定gradle依赖项(如在eclipseide中)在类路径(编译和运行时)中的顺序?,gradle,dependencies,classpath,eclipse-classpath,Gradle,Dependencies,Classpath,Eclipse Classpath,我有一个关键的类路径顺序问题,因此我需要确保类路径中JAR1位于JAR2之前 在EclipseIDE中的GRADLE_依赖项中是否有一种方法可以强制执行这一点 在打包应用程序(发行版)的过程中,您对如何实现这一点有何见解?理想情况下,您应该修复项目中的依赖项,以便在类路径中拥有正确的JAR集。看看Gradle文档第章中如何排除依赖项 如果您仍然想修改eclipse的类路径条目,下面是一个可能的解决方案 您可以使用以下命令修补Gradle中由eclipse任务生成的.classpath文件: ec

我有一个关键的类路径顺序问题,因此我需要确保类路径中JAR1位于JAR2之前

在EclipseIDE中的GRADLE_依赖项中是否有一种方法可以强制执行这一点


在打包应用程序(发行版)的过程中,您对如何实现这一点有何见解?

理想情况下,您应该修复项目中的依赖项,以便在类路径中拥有正确的JAR集。看看Gradle文档第章中如何排除依赖项

如果您仍然想修改eclipse的类路径条目,下面是一个可能的解决方案

您可以使用以下命令修补Gradle中由
eclipse
任务生成的
.classpath
文件:

eclipse.classpath.file {
    withXml {
        // This returns a the classpath XML root node (groovy.util.Node)
        def node = it.asNode()

        // Do the re-rodering of classpath entries by modifying the node object
    }
}
查看可用于查看/修改XML节点的方法

请注意,当您在JVM中运行打包的应用程序分发版时,您很可能无法控制类路径排序,这将使您在运行时在应用程序实际运行时回到原点


因此,最好的解决方案是找出您不希望在类路径中出现的jar依赖项的来源,并从中消除它,而不是依赖于有风险且不可靠的类路径排序。

谢谢您的全面回答。我意识到问题是由于jar的版本冲突造成的,jar被添加为可传递依赖项。通过使用“排除”功能在依赖项声明中排除它,我已经解决了这个问题。再次感谢您提供的信息性答案。是的,您可以通过依赖关系来实现,但请注意两条优先级更高的规则: