有没有办法确定在类路径(编译和运行时)中排序gradle依赖项(如在Eclipse IDE中)的顺序?

act*_*ota 6 dependencies classpath gradle eclipse-classpath

我有一个关键的类路径顺序问题,因此我需要确保JAR 1在类路径中位于JAR 2之前.

有没有办法在Eclipse IDE中的GRADLE_DEPENDENCIES中强制执行此操作.

在打包应用程序(分发)期间如何实现相同的任何见解?

Inv*_*row 7

理想情况下,您应该修复项目中的依赖项,以便在类路径中拥有完全正确的jar集.在Gradle文档中查看如何在依赖关系管理章节中排除依赖关系.

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

您可以使用以下方法修改Gradle中任务.classpath生成的文件eclipse:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

查看groovy.util.Node,了解可用于查看/修改XML节点的方法.

请注意,当您在JVM中运行打包的应用程序分发时,您很可能无法控制所执行的类路径排序,这将在应用程序实际运行时将您拉回到运行时的正方形.

因此,最好的解决方案是找出类路径中不需要的jar依赖项的来源,并从那里消除它,而不是依赖于类路径排序,这是有风险且不可靠的.