[解決済み] Gradleを使用しているときに、推移的依存関係のすべてのインスタンスを除外するにはどうすればよいですか?
質問
私のgradleプロジェクトでは
application
プラグインを使用して jar ファイルをビルドします。実行時の依存関係の一部として
org.slf4j:slf4j-log4j12
. (これは少なくとも5つか6つの他の推移的依存関係で下位推移的依存関係として参照されています。このプロジェクトはspringとhadoopを使っているので、キッチンシンク以外のすべてが引き込まれています... いや待てよ... それもある)... ).
をグローバルに除外したいのですが
slf4j-log4j12
jar をビルドした jar から削除します。そこで、こんなことをやってみました。
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
しかし、これでは
すべて
org.slf4j
を含むアーティファクト
slf4j-api
. デバッグモードで実行すると、次のような行が表示されます。
org.slf4j#slf4j-api is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-simple is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-log4j12 is excluded from org.apache.hadoop:hadoop-common:2.2.0(runtime).
のソースをいちいち調べる必要はない。
slf4j-log4j12
の推移的依存関係、そして個々の
compile foo { exclude slf4j... }
の文は、私の
dependencies
ブロックを作成します。
更新しました。
こんなこともやってみました。
configurations {
runtime.exclude name: "slf4j-log4j12"
}
を除外することになります。
すべて
をビルドから削除します。あたかも
group: "*"
.
アップデート2
Gradleのバージョン1.10を使用しています。
どのように解決するのですか?
ああ、以下のようにするとうまくいき、私の望むとおりになります。
configurations {
runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
}
のようです。
除外ルール
は2つの属性しか持っていません。
group
と
module
. しかし、上記の構文は、任意のプロパティを述語として指定することを妨げるものではありません。個々の依存関係から除外しようとする場合、任意のプロパティを指定することはできません。例えば、これは失敗します。
dependencies {
compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') {
exclude group: "org.slf4j", name: "slf4j-log4j12"
}
}
と
No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
そのため、依存関係の指定は
group:
と
name:
で除外を指定することはできません。
name:
!?!
おそらく別の質問だと思いますが、何 まさに は モジュール ということでしょうか?MavenのgroupId:artifactId:versionの概念は理解できますが、Gradleではgroup:name:versionに変換されると理解しています。しかし、その後、特定のMavenアーティファクトがどのモジュール(gradleの言葉で)に属しているかを知るにはどうすればよいですか?
関連
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] init-paramとcontext-param
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] x--やx++はここで何をするのですか?
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] gradleに依存関係を強制的に再ダウンロードさせるには?
-
[解決済み] build.gradle ファイルにローカルの .jar ファイルの依存関係を追加するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み】dexのマージができない。
-
[解決済み] SpringBootのLogbackを無効にする