問題タブ [dependency-resolution]
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 2.2.1 から Maven 3.0.4 へのアップグレード時の DependencyResolutionException
プロジェクトを Maven 2.2.1 から Maven 3.0.4 にアップグレードしようとしていますが、依存関係の解決で問題が発生しています。Mavenのドキュメントや同様の投稿を調べて、これを調査するために丸1日を費やしましたが、まだ立ち往生しています。これはスタックオーバーフローに関する私の最初の質問なので、ここでエチケットを十分に守っていることを願っています. ご協力いただきありがとうございます!
私のプロジェクト構造は次のとおりです。
さらに、自分のリポジトリに次のファイルがあります。
child-alpha/pom.xml には、自分の acme:child-dep-jdk15 へのプロファイル依存関係があり、これは個別に jar ファイルに組み込まれており、同じ acme-parent である親を指定する独自の .pom ファイルがあります。子アルファとしての親。
関連ファイルからの抜粋を次に示します。
acme 親 pom.xml:
子アルファ pom.xml:
子 dep-jdk15-1.0.pom:
child-alpha を (child-alpha ディレクトリで) ビルドしようとしたときに、次のコマンドを実行しました。
そして、次のログ メッセージとスタック トレースを取得しました (不要なメッセージは削除されました)。
Maven 2 を使用している間、http://maven2.my-own-repo.com/acme/acme-parent/1/acme-parent-1 の場所にある acme-parent pom.xml は必要ありませんでした 。ポンポン
独自のレポに親の pom.xml がない理由は、バージョン管理ブランチを作成するときに使用するスクリプトがあり、現在のブランチに応じて acme-parent pom.xml の値を変更するためです。その pom.xml をリポジトリに配置し、継続的インテグレーション サーバーと同時に構築しようとしているさまざまなブランチすべてに対して正しく更新し続けるのは複雑です。
Maven 2 では、child-alpha のビルドを行う場合、Maven は acme-parent pom.xml を 1 つ上のディレクトリ、つまり ../pom.xml の相対パスで問題なく見つけることができるため、私のリポジトリに移動しようとすることはありません。それを見つけるために。親 pom.xml をローカル チェックアウトにのみ配置し、リポジトリに配置しないと、Maven 2 で正常に機能しました。
しかし、Maven 3.0.4 で child-alpha をビルドしようとすると、上記の例外が発生しました。最初は、child-alpha の pom.xml の上部にあるタグ内に relativePath を明示的に設定する必要があると思っていましたが、それでも問題は解決しませんでした。実際、acme-parent の pom.xml は、実際には既にデフォルトの relativePath の中にあります。 ../pom.xml であるため、明示的に設定する必要はありません。
次に、child-alpha の pom.xml のセクション内の child-dep-jdk15 依存関係をコメントアウトしてみました。child-alpha maven ビルドは、この依存関係をコメントアウトして正常に完了します。
child-dep-jdk15 依存関係がある場合に、なぜ child-alpha が Maven 3 でビルドされないのか理解できません。Maven が最初に (上部のブロックごとに) acme-parent pom.xml を正しく見つけることができた場合、child-dep-jdk15 依存関係を処理するときにリポジトリからダウンロードしようとするのはなぜですか? 何かを誤って構成したことがありますか?もしそうなら、どうすれば修正できますか?
もう 1 つ: 最初mvn -N install
に acme-parent の pom.xml と同じディレクトリで実行し、次に child-alpha をビルドしようとすると、コードに依存関係の child-dep-jdk15 を保持していても、child-alpha のビルドは成功します。このコマンドを実行すると、acme-parent-1.pom がローカルの .m2 ディレクトリにあることを確認できます。この回避策は個々の開発者にとっては問題ないかもしれませんが、異なるブランチの同時ビルドを実行できる必要がある継続的インテグレーション サーバーにとっては問題になります。
上記のバージョン管理分岐の変更により、 acme-parent pom.xml をホストするようにリポジトリを再構成する必要はありません。
maven - Mavenがローカルアーティファクトを見つけられない
時折、mavenは、ローカルでビルドおよびパッケージ化された特定の依存関係が、依存関係としてそれを持つ別のプロジェクトをビルドしているときに、ローカルリポジトリで見つからないと不平を言います。次のようなエラーが発生します。
プロジェクトXで目標を実行できませんでした:プロジェクトXの依存関係を解決できませんでした:[archivaリポジトリ]でYが見つからなかったため、ローカルリポジトリにキャッシュされました。内部の更新間隔が経過するか、更新が強制されるまで、解決は再試行されません- >>
ここで、Xは構築中のプロジェクトであり、Yはおそらく欠落しているアーティファクトです。ローカルリポジトリを見ると、アーティファクトがそこにあります。このアーティファクトがarchivaリポジトリにインストールされることはないため、問題は純粋にローカルリポジトリに基づいています。
私たちはsettings.xmlでさまざまなプロファイルを試しましたが、もちろん「mvn-U」も試しました。このアーティファクトがローカルリポジトリを超えることは決してないので、何の役にも立ちませんし、そうすべきでもありません。
動作しているように見える2つのことは、Mavenがスマートになるまで非常に長い時間待つか、ローカルリポジトリを完全に削除することです。おそらく、待機オプションは前述の更新間隔に関連しています。
この問題は、Maven3.0.2および3.0.3で発生しました。Archiva 1.0.3を使用しています(ただし、これも要因にはなりません)。どんな助けでも大歓迎です。
maven - Maven が依存関係を見つけられない [dependencyResolutionException]
プロジェクトに Maven 依存関係を追加すると、プロジェクトはローカルでコンパイルされますが、サーバーではコンパイルされません。新しく追加された依存関係を解決できません。
これは私の pom.xml ファイルです:
そして、これは私のコンソール出力にエラーがあります:
(実際の URL とパッケージはすべて非表示にしました。)
何が問題なのですか?
gradle - Gradle buildscript ブロックで SNAPSHOT バージョンの cacheResolutionStrategy を指定するにはどうすればよいですか?
resolutionStrategy.cacheChangingModulesFor に問題があります。
私のプロジェクトbuild.gradleはこれに似ています
私の質問は: buildscript ブロックで SNAPSHOT バージョンの cacheResolutionStrategy を指定するにはどうすればよいですか?
java - Gradle での同じパッケージ構造を持つクラスの依存関係の解決
ProjectA
にコンパイル依存関係があるプロジェクトがあるとしますcore
。に依存core
しdeepcore
ます。したがって、ProjectA は deepcore に推移的な依存関係を持ちます。
したがって、ビルドスクリプトにProjectA
はこれがあります
そして、ビルドスクリプトcore
はこれを持っています
これで、 と の両方で同じパッケージ構造を持つクラスがCoreService
定義されました。そして、私は私の からそのクラスを使用していますが、どの実装を使用しますか? のバージョンを使用するように依存関係を構成するにはどうすればよいですか?core
deepcore
ProjectA
core