問題タブ [dependency-management]
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.
hudson - リポジトリへの Ivy パブリッシュがローカル キャッシュを更新しない
与えられた:
- Hudson/Ant を使用したビルド。
- Ivy キャッシュのタイムアウトは 5 分に設定されています。
- Ivy リポジトリには、Project A バージョン 2.2.2 と Project B バージョン 1.1.1 が含まれています。
- プロジェクト B はプロジェクト A に依存しています。
イベント:
- プロジェクト A に対して API の変更が行われます。
- 関連する変更がプロジェクト B に加えられます。
- プロジェクト A バージョン 2.2.3 がビルドされ、リポジトリに公開されます。
- 5 分以内に、プロジェクト B バージョン 1.1.2 がビルドされます。
- プロジェクト B は失敗し、Ivy Cache からプロジェクト A バージョン 2.2.2 を引き続きプルします。
- 5 分後、プロジェクト A バージョン 2.2.3 でプロジェクト B が正しくビルドされます。
私は見ましたが、明らかな解決策が見当たりません(キャッシュしないことを除いて?)。ローカル キャッシュとリポジトリを更新する公開設定はありますか? 両方に明示的に発行する必要がありますか?
jar - JAR に依存する場合、クラス/パッケージを除外することは可能ですか?
JUnit 3 パッケージ全体を含む JAR ファイルに依存する必要がありますが、JUnit 4 はプロジェクトに個別にバンドルしています。したがって、代わりに JUnit 4 ランナーを使用して実行する必要がある場合に、JUnit 3 ランナーを使用して実行されるため、私のテストは中断されます。
問題は、JAR に依存しているときに、特定のクラスまたは JAR のパッケージ全体を含めないように Gradle に指示できるかどうかです。
更新 提案されたzipTree / copyソリューションを使用して機能しました:
美しく動作します。
configuration - 同じ依存関係に対して「runtime」と「compile」の両方を指定する必要があるのはなぜですか?
アプリケーションのコンパイルと実行の両方に必要ないくつかのアーティファクトに依存しています。
Gradle docs によると、ランタイム構成はコンパイル構成を拡張するため、使用して依存関係を追加することruntime
は暗黙のcompile
依存関係を意味しますか?
少なくともそれは私の仮定でしたが、うまくいきません。を使用してアーティファクトに依存しているときruntime
、私のプロジェクトはもうコンパイルされません。私は文字通りしなければなりません:
アプリケーションが実行時に Signpost クラスをコンパイルして参照できるようにします。
何か不足していますか?それは正しく見えません...
c# - C++ C# プロジェクトの依存関係管理
メインの Visual Studio ソリューションを管理する方法を見つけようとしています。このソリューションでは、C++/CLI プロジェクト、C++ ネイティブ プロジェクト、C# プロジェクト、他のチームによって管理され、頻繁に更新される (依存関係と共に) 外部依存関係 (独自の依存関係を持つコンパイル済みの C# アセンブリ) を管理する必要があります。
すべてのタイプのプロジェクトは、相互に依存関係を持つことができます (もちろん、C# または C++ ネイティブを除く)。
一部の C# プロジェクトには、外部 DLL への依存関係があり、適切に動作するために他の DLL が必要になる場合があります。
これまで、ビルド後の手順を使用して、各プロジェクトの出力ディレクトリへの参照をコピーしてきました (外部でコンパイルされた C# ライブラリと必要な C++ DLL の追加の依存関係)。このプロセスを自動化したいと考えています。プロジェクトは数多くあり、外部 DLL は他のチームによって管理されることが多く (依存関係がどんどん追加されることもあります)、それらによって加えられたすべての変更が自動的にメイン プロジェクトに反映されるようにしたいと考えています。
新しいプロジェクトがソリューションに含まれるたびに、ツール、バッチファイルのベストプラクティス、またはこの依存関係の地獄で自分自身を失い、svnの更新と少しの構成作業を行うだけの何かはありますか?
私の問題の 1 つは、C# project1a.dll と C# project 1b.dll を必要とする C# project1.dll がある場合、C# project2 が project1.dll を必要とする場合、project1a.dll と project1b.dll を project2 参照に追加したくないことです。しかし、出力フォルダーでそれを見つけたいと思います (これは、project1a が別のチームによって管理されており、毎日 project1x.dll が機能する必要があるためです)。
この要件をどのように解決しましたか?
java - 1.3 の代わりに 1.4 Commons-DBCP が導入される
私には奇妙な状況があります。jar A では、commons-dbcp のバージョン 1.3 を明示的に取り込みます。jar B には、jar A への依存関係があります。ただし、jar B に jar A の依存関係を持ち込むと、maven 依存関係階層は、jar B が現在 1.4 を使用していることを示しています。その依存関係を削除すると、commons-dbcp は私の maven 依存関係階層から削除されるため、他の場所に取り込まれていないと確信できます。そして、jar A の maven 依存関係階層にいるときは、1.3 しか表示されません。
なぜこれが起こっているのか誰にも分かりますか?
java - Spring Batch で Spring フレームワークのバージョンをオーバーライドするにはどうすればよいですか?
Spring Batch 2.1.6.RELEASE で新しいプロジェクトを開始しており、依存関係管理に Maven を使用しています。
デフォルトでは、Spring フレームワーク 2.5.6 をインポートしますが、代わりに 3.0.5.RELEASE を使用したいと思います。
This postは互換性があると言っていますが、maven pom ファイルでそれを宣言する方法がわかりません。
spring-core、spring-beans、spring-context バージョン 3.0.5.RELEASE の依存関係を入れてみましたが、2.5.6 バージョンを削除せずにライブラリをプロジェクトに追加します。
spring-batch-parent pom ファイルを調べたところ、必要な春のバージョンを使用する「spring3」というプロファイルがあります。プロジェクトの pom ファイルでプロファイルを有効にするにはどうすればよいですか?
前もって感謝します、
フィリップ
maven-2 - Mavenのバージョンに相当するIvyは何ですか:display-dependency-updates?
依存関係を明示的に指定するivy.xmlファイルがあります。Ivyに組み込まれている、古い依存関係を検出または自動的に更新できる機能はありますか?
完全に安定した再現可能なビルドが必要なため、latest.releaseは使用しません。しかし、時々、いくつかの依存関係を更新したいと思うと同時に、他のどの依存関係が古くなっているのかという質問に答えるとよいでしょう。
ruby - ruby 以外の gem の依存関係をリストする最良の方法は何ですか?
Pythonとして配布されているオープンソースプログラムを使いたいというRuby gemを書いています。python プログラムを ruby に移植する時間がなく、外部依存関係をできるだけ自動的に管理したい。
Gem.pre_install フックを使用して、興味のある python パッケージを自動的に easy_install することを考えています。
http://rubygems.rubyforge.org/rubygems-update/Gem.html#method-c-pre_install
より良い方法の提案、または pre_install のサポートが受け入れられている場合は、感謝します。
maven - ゲーム開発 / アセット パイプラインの Maven
ビルド / 依存関係管理ツールとして Maven を検討しているところですが、典型的なゲーム開発シナリオで (多くの場合非常に複雑な!) 依存関係を管理するのに理想的であるように思えました。
いくつかのシナリオ例:
- フォーマット間の 3D アセットの変換 / テクスチャへの前処理ステップの適用
- 世界地図が変更されたときの経路探索ノードなどの静的なゲーム内データ構造の再構築
- プラットフォーム固有のグラフィック ライブラリなどの非常に複雑な依存関係を処理します。
この種のアプローチで成功した人はいますか?
c# - 依存性注入とサービスの場所
私は現在、DIとSLの長所と短所を比較検討しています。しかし、私は次のキャッチ22に気づきました。これは、すべてにSLを使用し、各クラスにIoCコンテナーのみを注入する必要があることを意味します。
DIキャッチ22:
Log4Netなどの一部の依存関係は、単にDIに適合しません。私はこれらのメタ依存関係を呼び出しており、コードの呼び出しに対して不透明である必要があると感じています。私の正当な理由は、単純なクラス「D」が元々ロギングなしで実装され、その後ロギングを必要とするようになった場合、依存クラス「A」、「B」、および「C」は、何らかの方法でこの依存関係を取得し、 「A」から「D」(「A」が「B」を構成し、「B」が「C」を構成すると仮定)。1つのクラスにログインする必要があるという理由だけで、コードを大幅に変更しました。
したがって、メタ依存関係を取得するには不透明なメカニズムが必要です。シングルトンとSLの2つが思い浮かびます。前者には、主に厳密なスコープ機能に関して既知の制限があります。せいぜいシングルトンは、アプリケーションスコープ(つまり静的変数)に格納されているAbstractFactoryを使用します。これによりある程度の柔軟性が得られますが、完全ではありません。
より良い解決策は、IoCコンテナーをそのようなクラスに注入し、そのクラス内からSLを使用して、コンテナーからのこれらのメタ依存関係を解決することです。
したがって、キャッチ22:クラスにIoCコンテナーが注入されているので、他のすべての依存関係も解決するためにそれを使用してみませんか?
私はあなたの考えを大いに感謝します:)