問題タブ [transitive-dependency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Gradle で推移的な JAR 依存関係を除外する
Gradleで定義された2つのプロジェクト、projectAとprojectBがマルチプロジェクトとして定義されています。
ProjectA はspring1-beans.jarとの依存関係を持ち、ProjectB は ProjectA との依存関係を持ちます。
私が得た問題は、ProjectB にもspring3-beansとの依存関係があるため、Spring1 jar を除外する必要があることです。そうしないと、間違ったバージョンの Spring が使用されます。
ProjectA の Gradle conf ファイルは次のようになります。
および ProjectB の設定:
残念ながら、これは機能しません。Gradle は次のエラーをスローします。
プロジェクトで引数 [ファイル コレクション] のメソッド exclude() が見つかりませんでした
同様の出力を持つモジュールでも試しました:
「lib/spring-beans.jar」という記述は無効です
ノート:
- プロジェクトが Ant から移行されているため、JAR の依存関係を使用しているため、提案を受け付けていますが、リモート リポジトリに切り替えることができません。
jenkins - 「アップストリームビルドのブロックは推移的」ですか?
Jenkins のドキュメントを調べましたが、この回答が見つかりません。
私はそれで遊んでいますが、私の結果はやや矛盾しているようです。
「上流のビルドをブロックする」オプションは推移的ですか?
たとえば、プロジェクト A がプロジェクト B をトリガーし、プロジェクト B がプロジェクト C をトリガーするとします。
A が実行中で、B がトリガーされた場合、A が終了するまで B は実行されません。
A が実行中で C がトリガーされた場合、C は A が終了するまで待機しますか?
maven - Mavenは同じ推移的な依存関係ですが、バージョンは異なります
次の 2 つの依存関係がある問題が発生しています。
org.apache.felix » org.apache.felix.utils » 1.6.0
と
com.github.rotty3000 » フィディアス » 0.3.2
どちらも org.osgi.core に推移的な依存関係があり、felix はバージョン 4.1.0 に依存し、phidias はバージョン 5.0.0 に依存しています。
コードを正しくコンパイルするにはバージョン 5.0.0 が必要です
依存関係を次のように配置した場合:
maven は自動的にバージョン 4.1.0 を取得し、コンパイル エラーが発生します。felix の上に phidias を配置すると、バージョン 5.0.0 になり、正常にコンパイルされます。
依存関係をアルファベット順に並べて、felix が一番上になるようにしたいのですが、osgi.core に強制的に 5.0.0 バージョンを解決させる方法はありますか?
ありがとう!
maven - Mavenで間違った推移的な依存関係を回避することは可能ですか?
プログラムでは JPod ライブラリを使用します。今、私はそれを Maven に切り替えようとしているので、これらの行を に追加しましたpom.xml
:
ただし、この Maven ビルドの後、次のメッセージが表示されて失敗します。
次の成果物を解決できませんでした: javax.media:jai-core:jar:1.1.3、com.sun.media:jai-codec:jar:1.1.3: javax.media:jai-core:jar が見つかりません: http ://repo.maven.apache.org/maven2 の 1.1.3 がローカル リポジトリにキャッシュされました。解決は、中央の更新間隔が経過するか更新が強制されるまで再試行されません -> [ヘルプ 1]
問題は、JPod が一部のライブラリに依存していることです。これらのライブラリには、それらの依存関係が jai-core および jai-codec としてリストされています。ただし、そのようなアーティファクトはありません。代わりに、jai_core と jai_codec (ハイフンの代わりにアンダースコアを使用) があります。わかりませんが、ある時点で名前が変更された可能性があります。
このページで私が何を意味するかを確認できます。「依存先」セクションの jai-core へのリンクをクリックするだけです。
このような壊れた依存関係を「オーバーライド」する方法はありますか? または、ここでどのように進めますか?私は一般的にMavenに慣れていないので、詳細な回答が良いでしょう.
plugins - gradleタスクで推移的な依存関係の情報を取得するには?
Gradle タスクですべての依存関係 (推移的なものを含む) の情報を取得したいと考えています。
私はコードを試しました:
ただし、宣言されたもののみを出力し、推移的なものは出力しません。
つまり、私の場合dependencies
:
これら 3 つの依存関係のみを出力しますorg.hamcrest:hamcrest-core:1.3
が、推移的な依存関係でjunit:junit:4.11
ある は表示されません。
コードを変更して表示できるようにする方法はorg.hamcrest:hamcrest-core:1.3
?
PS:gradle dependencies
タスクで必要なものがすべて表示されることはわかっていますが、依存関係の情報を手動で取得して、独自の形式で出力する必要があります。