問題タブ [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 アーティファクトをローカル リポジトリに推移的にダウンロードする
特定のアーティファクト (およびそのすべての依存関係) をマシンのローカル リポジトリにダウンロードしようとしています。
これには、dependency:get ゴールを使用するのが最適なオプションのように思われますが、ドキュメントにもかかわらず、実際には推移的な依存関係を取得していないようです。
dependency:get
これは、spring-core jar とその多くの依存関係すべてをダウンロードするために使用しようとした例です。ローカル リポジトリを消去した後にダウンロードされたにもかかわらず、ダウンロードされたのは spring-core jar だけであることがわかります。
私の質問は次のとおりです。
dependency:get
これは目標のバグですか?- そうでない場合、私は何を間違っていますか?
- 最初に述べた目標を達成するために使用できる代替方法はありますか?
dependencies - Maven は推移的な依存関係のバージョン競合をどのように解決しますか? ニアレストウィン戦略
私はついに、自分のプロジェクトで使用済みの宣言されていない依存関係または未使用の宣言された依存関係を持たないことに慣れました。依存関係にリストされている未使用の宣言されたランタイム/テスト依存関係を追跡することは非常に困難ですが:分析します... pom.xml にコメントを書き込むか、テストまたはランタイムに必要であることを知るためにそれらを管理する必要があります。
しかし、バージョンの競合を解決する方法はまだ不明です。推移的な依存関係について。
ニアレストウィン戦略はどのように正確に機能しますか? あるバージョンが別のバージョンで使用されるのはいつですか?
バージョン番号を使用して宣言されていない依存関係を宣言すると、常に勝ちます
依存関係のバージョンを明示的に指定しない場合、Maven はこの依存関係に関して発生する可能性のあるバージョンの競合を解決できません (奇妙ですが、ここに書かれています) 。
宣言されていない使用済み依存関係を宣言しない場合、最も近いレベルから推移的な依存関係が選択され (最も近い勝利戦略)、競合が同じレベルにある場合は、何らかの形でバージョン A とバージョン B の間で決定されます ... おそらく最初の依存関係を処理するときに来るもの
mysql - MySQLの推移的な依存関係
私は、推移的な依存関係が何であるかについての幅広い説明を探しています。私を助けてください。ありがとう
.net - .NET は推移的な依存関係/参照を利用する
3 つのプロジェクトを含む Visual Studio ソリューションがあります。
- マイウェブサイト (A)
- ビジネスモデル (B)
- 持続性 (C)
Persistence
、 projectは、すべてのリポジトリ インターフェイス、それらのリポジトリの実装、および DB テーブルにマップするクラスC
に依存し、それらを含みます。NHibernate
Hibernate
BusinessModel
、 projectは、すべてのサービス クラスおよびビジネス ドメイン エンティティを表すクラスにB
依存し、それらを含みます。C
これらのサービスは、リポジトリを使用してデータを取得し、そのデータをビジネス表現に変換して独自のインターフェイスに表示します。
MyWebSite
、 projectは、すべての MVC クラス/ファイルA
に依存し、含まれています。A
ここでの MVC コントローラーは、サービス クラスを使用しB
てビジネス ロジック機能を実行します。このレベルでは、 projectB
が projectC
のリポジトリを使用して操作を実行するという知識はありません。
完璧な世界では、そのプロジェクトA
はB
which references C
which referencesを参照する必要があると思いますNHibernate
。これは真実ではないようです。プロジェクトにはandへA
の参照が必要であることがわかりました! Web アプリケーションがバックエンド アーキテクチャの知識を必要とするという考えは好きではありません。特に、ORM として使用しているという事実を認識させたくありません。B
C
NHibernate
NHibernate
これらのプロジェクトに、参照を解決するときに推移的な依存関係を利用するように指示する方法はありますか?
その情報が違いを生む場合、私のプロジェクトはVisual Studio 2010の.NET 4です。
編集:私は、これらの参照が projectのクラスが project から表面化された場合にのみ必要であることを説明する関連する質問に対するこの SO の回答を見つけました。私はレイヤー間にリークがないように非常に固く決心しており、クラスはでのみ使用されることを知っているので、正しく理解していないだけかもしれません...C
B
Hibernate
C
maven - 依存関係が埋め込まれた Maven で OSGi バンドルを構築しようとしています。BND クラスパスから推移的な依存関係を除外できないようです
基本的に、Web サービスは単一の OSGi jar バンドルとしてデプロイ可能でなければなりません。したがって:
- バンドルには、すべてのコンパイルおよび実行時の Maven 依存関係が含まれている必要があります。
- また、それらの依存関係 (つまり、推移的な依存関係) に依存するすべての非オプションの依存関係も含まれている必要があります。
これを達成するために maven-bundle-plugin を使用しようとしています。Embed-Dependency を使用して、コンパイルとランタイムのすべての依存関係をバンドルに取得し、Embed-Transitive を使用してすべての推移的な依存関係を埋め込みました。次に、excludeDependencies を使用して BND クラスパスから Maven の依存関係を除外する方法を見つけました (それらはマニフェストの Private-Package に移動されます) が、私の人生では、推移的な依存関係を除外する方法がわかりません. 私が何をしても、推移的な依存関係はマニフェストの Import-Package リストにまだ表示されているようです。
さらに悪いことに、オプションのものを含むすべての依存関係を吸い込んでいるように見えるので、ibatis や jfree など、使用しない余分なものがたくさん得られます。しかし、依存関係パターンに ;optional=false を追加すると、パターンに一致する依存関係がないという警告が表示されます。
依存関係を 1 つずつ除外しようとし始めましたが、依存関係を 1 時間追跡した後、より良い方法が必要であると判断しました。
これが私の pom.xml の現在の化身です。誰でもこれを解決するのを手伝ってもらえますか?
dll - ネイティブの依存関係とファイルのコピーを含む Maven プロジェクト
次のシナリオがあります。
mylib はライブラリです (ソースがあるので、たとえば Maven プロジェクト mylib:mylib に入れたいと思います)。このライブラリには、私が jar しか持っていない jar 依存関係があり、Maven リポジトリにはありません (また、そこにインストールしたくありません)。コンパイルするには、次のようにします: jar ファイルを mylib プロジェクトの「lib」フォルダー (例: 「lib/thirdpartylib.jar」) に追加し、mylib の pom.xml に、自分で選択した group/ に依存関係を追加します。アーティファクト/バージョンと " <scope>system</scope><systemPath>${project.basedir}/lib/thirdpartylib.jar</systemPath>
" エントリ。mylib プロジェクトは正常にコンパイルされます。
mylib も実行時に dll ファイル (たとえば thirdparty.dll) に依存していることに注意してください。しかし、コンパイルの場合、これは重要ではありません。
しかし、今、私は次のことを達成する方法を考えています:
プロジェクト "X" など、 mylibを使用するその他のプロジェクトには、
、
また、実行中の VM がサードパーティの jar と dll を検出できるように、java.library.path をディレクトリ (例: ".") に設定する必要があります。
私の懸念は次のとおりです。サードパーティの jar/dll を mylib プロジェクトに任せたいと考えています。つまり、サードパーティのjarとdllをターゲットフォルダーにコピーする必要があり、java.library.pathがそれらを参照して、mylibプロジェクトの一部になるという知識を定義したいと思います(mylib pomは、物事がどのように行われるかを知っています)他のプロジェクトで使用できます)。それでも、私はこの知識 (つまり、Maven で正確にどのように行われるかに関係なく、コピーの指示) を、たとえば X など、mylib を使用する他のプロジェクトに推移的に引き渡したいと考えています。それはどういうわけか可能ですか?
[現時点での私のハックの解決策は、X にサードパーティのもののコピーがあることですが、それでも dll ファイルをコピー/処理する方法がわからないため、dll ファイルには.実行中の VM の bin フォルダーにコピーされます)。
どんな提案でも大歓迎です!
maven - Maven - 異なるバージョンの推移的な依存関係
- 私のアプリケーションのニーズ
foo.jar
とbar.jar
foo.jar
のバージョン 1.0 が必要ですc.jar
bar.jar
のバージョン 2.0 が必要ですc.jar
Maven はこの競合をどのように解決しますか? のどのバージョンc.jar
が使用されますか?
java - マルチモジュールプロジェクトとのMaven循環依存関係
私は私を困惑させ続けるマルチモジュールプロジェクトを持っています。このマルチモジュールpomプロジェクトを使用してインポートする別の「戦争」プロジェクトがあります
だし、推移的な依存関係は含まれていません。マルチモジュール「pom」プロジェクトに依存関係を含めるときはいつでも、セクションでは、循環依存関係を取得し続けます。マルチモジュール「pom」プロジェクトで「module」を使用すると、依存関係として子モジュールが含まれるようですが、このマルチモジュール「pom」プロジェクトを含むプロジェクトでは、これらの依存関係を推移的な依存関係にすることはできません。使用する方法はありますか
サブモジュールがあり、サブモジュールの依存関係がこのpomから継承するプロジェクトに渡される「pom」プロジェクト内?
sql - 推移的な依存関係の何が問題になっていますか?
データベース設計に推移的な依存関係があります。上司から、これらはバグを引き起こす可能性があると言われました。これらの依存関係があるとバグがどのように発生するかを教えてくれるリソースを見つけるのは難しいと感じています。彼らはどのような問題を引き起こしますか?
私はその事実に異議を唱えているのではなく、彼らがどのような問題を引き起こす可能性があるのかを知りたがっています。
詳細については編集してください:
ウィキペディアから:
推移的依存性
推移的依存性は、間接的な機能依存性であり、X→YおよびY→ZによってのみX→Zになります。
maven - Maven の推移的な依存関係の問題
プロジェクトのビルド中、org.bouncy-castle:bcprov の 2 つのバージョンが必要です
- org.bouncy-castle:bcprov-jdk12
- org.bouncy-castle:bcprov-jdk16
したがって、依存関係をリストしている間、jdkversion12を取得しています
jdkversion16 が最初にリストされるように POM ファイルを変更する方法はありますか?