問題タブ [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.
maven - テスト範囲の依存関係からの推移的な依存関係が Maven の WAR にパッケージ化されないようにするにはどうすればよいですか?
Maven 3.2.3 を使用しています。私のpomには、このテスト依存関係があります
ただし、Maven は test-jar がコンパイル時に依存している JAR ファイルを取り込んでいることに気付きました。以下は mvn dependency:tree からの抜粋です …</p>
依存関係がテストスコープの依存関係から含まれている場合、Maven が依存関係を WAR にコンパイルしないようにするにはどうすればよいですか?
編集コメントごとに、以下は mvn depdency:tree からの完全な出力です
android - 推移的な依存関係が機能せず、Maven に変換された後に Android プロジェクトが実行されない
Android プロジェクトで Maven 依存関係管理を使用しようとしています。私は以下を使用しています
- ADTとM2Eclipseを使用したEclipse Mars
- m2e-androidプラグイン 1.6
- Maven 2.2.1
- Mac OS X 10.10.4
私はclasses.jarパッケージを持っています。これを使用してmavenアーティファクトに変換します
上記のコマンドが参照する付属の pom.xml は次のようになります
アーティファクトをプライベート ローカル Maven リポジトリ (システムではtest-maven-repoという名前) にデプロイしたら、新しい Android プロジェクトを作成し (この時点で Android デバイスで実行されていることをテストします)、maven に変換します。
を使用してPOMファイルを作成します
これは物事がうまくいかないところです
問題 1 Convert to Maven Project を クリックすると、ビルド システムが起動し、コンソールでこれに気づきます
アプリを実行しようとすると、logcat に以下のスタック トレースが表示されます
注:Eclipse Lunaで動作するようにテストしましたが、android-m2eプラグインv1.6に更新した後、問題1が再発しました。
問題 2 Eclipse Luna と android-m2e プラグイン v1.5 を使用すると、Android デバイスでコンパイルして実行するように、プロジェクトが機能しました。しかし、今回は参照する Maven アーティファクトのみが依存関係としてダウンロードされます。アーティファクトが依存する推移的な依存関係 (独自の pom.xml ファイルでも参照される) は、テスト リポジトリから単独でダウンロードされません。
私のプロジェクトのpom.xmlは以下のようになります(レポがサーバーでホストされている場合、コード内のリンク)
私は私のmaven依存関係セクションの下でtest.jarを取得しています。私のtest.jarが依存するOkHttp.jarまたはokio.jarはありません(これはmaven centralから推移的にプルされているはずです) 注1:私はプライベートtest-maven-repoとともにmaven centralを追加しようとしました。
注2:Android Studioでmaven repoをgradleで使用すると、すべてがバターのように機能します。
質問:
- Eclipse の Android プロジェクトで Maven 依存関係管理を使用するためのセットアップが間違っていますか?
- ここで何が間違っていますか?
- Maven バージョン/m2e-android プラグイン/Eclipse バージョンですか、それとも基本的に依存関係管理の実行で何かを行うために使用するこれら 3 つの組み合わせですか?
eclipse - Maven Eclipse プラグイン、推移的な依存関係を除外
Maven および推移的な依存関係の除外についていくつか質問があります。しかし、私はそれがうまくいきません。pomのサイズを小さくするために、いくつかのライブラリを再パッケージ化したpomにいくつかの依存関係があります。これまでのところ、これは成功しています。しかし、これらの推移的な依存関係を実行していると、 .classpathファイルmvn eclipse:eclipse
に書き込まれます。次の抜粋のように除外されていますが。
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)
Java バージョン: 1.7.0_45、ベンダー: Oracle Corporation
gradle - Gradle の推移的な依存関係から新しいバージョンのライブラリを使用しないでください
私が使用する私のAndroidプロジェクトで
私のコードが正しく動作するには、バージョン 2.2.0 の okhttp が必要です。しかし、追加すると問題が発生します
intercom-sdk の内部には、以降のバージョンの okhttp 依存関係があるためです。
私のコードは、必要な 2.2.0 ではなく、それ以降のバージョン 2.4.0 を使用します。モジュールで指定した 2.2.0 を使用し、インターコムでその 2.4.0 を使用できるようにする方法はありますか?
gradle - すべての推移的な依存関係を除外すると、Gradle は self を除外します
私は解決できなかった特定の問題に出くわしました。助けに感謝します。もともと、Java プロジェクトにアーティファクトのみの依存関係としていくつかの jar 依存関係を含めました。これは次のようになりました。
ここまでは順調ですね。このプロジェクトを「A」としましょう。プロジェクトAを別のJavaプロジェクトBに含めました。これもgradleを使用しています。maven-publish で公開された A は、B で使用するときに、pom ファイルですべての推移的な依存関係を除外していないことに気付きました。
だから私は推移的なフラグを使い始めました:
これにより、プロジェクト B で、Eclipse プラグインと gradle 自体を使用するときに、A のすべての推移的な deps を除外したことが確認されます。
ただし、公開された pom.xml で除外が欠落しているという問題は残りました。次に、執筆時点で私のgradleバージョンで解決されているように見えるこの問題を見つけました:GRADLE-2945
だから私は次のことを試しました:
pom ファイルには、 maven docに従って、推移的な依存関係に必要な除外ルールが正しく含まれるようになりました。
ただし、これは別の問題を引き起こします。compileJava タスクを使用する場合、eclipse も gradle 自体も、そのように A を含めるとプロジェクト B のコードをコンパイルできませんでした。その推移的な依存関係とともに、A 自体が姿を消しました。
ただし、奇妙なことに、依存関係タスクによれば、それはコンパイル クラスパスの一部です。
私は JRE7 と gradle 2.3 を eclipse 4.41 で使用しており、nexus を内部の Maven リポジトリとして使用しています。
推移フラグを使用する必要はなく、必要な除外を追加して、生成された pom ファイルを手動で操作する必要はないと思います。
プロジェクト A として dbcp を使用して問題を再現するサンプル プロジェクト:
Main.java:
build.gradle:
gradle - プロジェクトのコンパイルを除くすべての推移的な依存関係を無効にします(...)
依存しているプロジェクト (compile("foobar")) から推移的な依存関係のみを取得し、他のすべての推移性を無効にするように hibernate を構成することは可能ですか? それが私がこれまでに試したことです:
そうはいきません。推移的な依存関係はまったくプルされません。
提案されたように1を更新
ただし、foobar からの依存関係は考慮されません。
更新 2
次の解決策は今私のために働きます:
gradle - Gradle サブの推移的な依存関係の除外
ModA と ModB と ModC の 3 つの Gradle モジュールがあります。
ModA は ModB および Spring Web MVC 3.2.6 に依存しています
ModB は ModC に依存しています
ModC は Spring Web MVC 4.1.5 に依存しています
ModA が 3.2.6 ではなく Spring 4.1.5 をプルして使用しているため、かなりの数のエラーが発生しています。バージョンの違いと時間の関係で、今のところ ModA を Spring 4.1.5 に更新できません。私がやりたいことは、Spring 4.1.5 を ModA Gradle ファイルの ModB 依存関係から除外して、3.2.6 のみが取り込まれて使用されるようにすることです。ただし、私が試したことはすべて、依存関係を排除していません。
機能しません: ModA build.gradle:
では、依存関係の依存関係からモジュールを除外するにはどうすればよいでしょうか? そして、これが私が想定されている方法である場合、なぜそれが機能しないのでしょうか?