6

クラスパスで JAR 1 が JAR 2 の前に来るようにする必要があるため、クラスパスの順序に重大な問題があります。

Eclipse IDE の GRADLE_DEPENDENCIES でこれを強制する方法はありますか。

アプリケーションのパッケージ化 (配布) 中に同じことがどのように達成できるかについての洞察はありますか?

4

1 に答える 1

7

理想的には、プロジェクトの依存関係を修正して、クラスパスに正確に正しい jar のセットが含まれるようにする必要があります。Gradleドキュメントの依存関係管理の章で依存関係を除外する方法を見てください。

それでも Eclipse のクラスパス エントリを変更したい場合、考えられる解決策の 1 つを次に示します。

以下を使用して、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
    }
}

XML ノードの表示/変更に使用できるメソッドについては、groovy.util.Node を参照してください

パッケージ化されたアプリケーション配布物を JVM で実行する場合、ほとんどの場合、クラスパスの順序を制御できないことに注意してください。これにより、アプリケーションが実際に実行されると、実行時に振り出しに戻ります。

したがって、最善の解決策は、危険で信頼性の低いクラスパスの順序付けに頼るのではなく、クラスパスで不要な jar 依存関係のソースを見つけてそこから削除することです。

于 2015-01-11T19:57:49.060 に答える