問題タブ [dependencies]
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.
c# - C# .NET における長引くアセンブリ依存性
私の C# プロジェクト (SuperUI と呼びます) では、外部アセンブリのクラスを使用していました。現在はそうではありませんが、アセンブリ参照が配置されていないと、コンパイラはプロジェクトをビルドできません。詳しく説明しましょう。
SuperException
このプロジェクトは、標準の System.Exception から派生したカスタム例外クラスをスローしてキャッチしていましたSuperAssembly.DLL
。
最終的に、これは無意味な作業であると判断し、すべてSuperExceptions
をそれぞれ System.SuitableStandardException に置き換えました。への参照を削除しましたSuperException.DLL
が、プロジェクトをコンパイルしようとすると、次のようになります。
タイプ 'SuperException' は、参照されていないアセンブリで定義されています。アセンブリ 'SuperException, Version=1.1.0.0 (...)' への参照を追加する必要があります
エラーで参照されているソース ファイルは関連していないようです。IDE で強調表示されるのは、プロジェクトの名前空間です。
さて、ここにあります:
- のすべての使用は
SuperException
、プロジェクトのコードから削除されました。 - への参照なしで正常にコンパイルされる別のプロジェクトと比較して
SuperException.DLL
、私はもう 1 つのアセンブリのみを参照that
し、プロジェクト自体が参照していないものは何も参照していません。これらの依存関係のいずれかがスローされる可能性はありますがSuperExceptions
、基本の Exception クラスのみをキャッチしているため、いずれにせよ...他のプロジェクトは正常にビルドされます! - 私は Visual Studio の「クリーン ソリューション」を実行し、すべてを手作業で何度もクリアしました。
この参照を含めることは世界の終わりではありません。なぜそれが必要なのかわかりません. うーん。どんなポインタでも大歓迎です!
.net - .NET Framework の依存関係
.NET でデスクトップ アプリケーションを開発する場合、.NET Framework を必要としないことは可能ですか? .NET でソフトウェアを開発することは、デスクトップ アプリケーションを開発するための推奨される方法ですか? ソフトウェア企業がデスクトップ アプリケーションの開発に使用する最もよく使用されるプログラミング言語は何ですか?
.NET Framework の要件は、インストールした Windows OS に基づいて想定されているだけなので、Windows OS のバージョン要件が記載されているのはなぜですか?
.net-2.0 - 展開プロジェクトの前提条件として .NET 2.0 SP1 を追加
Service Pack 1 に依存する貢献が最近あった .NET 2.0 アプリケーションがあります。展開プロジェクトは、前提条件として .NET 2.0 を検出しましたが、SP1 は検出しませんでした。SP1 を依存関係/前提条件として展開プロジェクトに含めるにはどうすればよいですか?
dependencies - OSGi ビルドの依存関係を管理するにはどうすればよいですか?
プラグインの開発を容易にするために、OSGi ランタイム (Equinox) をカスタム クライアント サーバー アプリケーションに組み込みましたが、これまでのところ順調に進んでいます。組み込みのマニフェスト エディター、依存関係管理、およびエクスポート ウィザードにより、Eclipse を使用してプラグインを作成しています。Eclipse を使用してビルドを管理することは、Hudson による継続的インテグレーションにはあまり役立ちません。
他の OSGi バンドルに依存する OSGi バンドルがあります。カスタム ANT ビルドでビルド順序をハードコーディングするのは本当に嫌です。これは過去のことであり、かなり恐ろしいことです。OSGi の依存関係を自動的に解決しない場合でも、簡単に管理できるビルド ツールはありますか? これを行う方法の適切な例はありますか?
説明:
生成されたビルド スクリプトは、Eclipse 経由でのみ使用できます。Eclipse の一部を手動で実行する必要があります。また、Eclipse ビルドにはない標準ターゲットもいくつかあります。再生成する可能性があるため、生成されたファイルを変更したくありません (インクルードできることはわかっていますが、Eclipse gen ファイルをすべて回避したいです)。一緒)
ここに私のプロジェクトのレイアウトがあります:
Eclipse PDE を使用する場合、各プラグインにはマニフェストがありますが、PDE が私のためにそれを行うため、build.xml はありません。Hudson を使用して GUI 駆動のプロセスを自動化するのは困難です。それぞれをビルドするために独自の build.xml をセットアップしたいのですが、依存関係とビルド順序の問題があります。これらの問題は、マニフェスト ファイル (OSGi インポートを記述する) によって引き起こされます。たとえば、PluginC は、PluginA に依存する PluginB に依存します。それらは正しい順序で構築する必要があります。ビルド順序を手動で制御できることに気づきました。ビルド順序の依存関係管理を自動化するのに役立つツールを探しています。
java - 依存関係の最新バージョンを使用するよう Maven に指示するにはどうすればよいですか?
Maven では、通常、依存関係は次のように設定されます。
頻繁にリリースされるライブラリを使用している場合、 <version> タグを常に更新するのはやや面倒です。(リポジトリから) 最新の利用可能なバージョンを常に使用するように Maven に指示する方法はありますか?
.net - アプリケーションが必要とするアセンブリのリストを取得する
.net プロジェクトに必要なすべてのアセンブリ (.net フレームワークを除く) を、セットアップ ファイルとしてnsisにパッケージ化できるフォルダーに入れる方法はありますか?
リフレクションを使用して dll のリストを取得する小さなコンソール アプリを作成しようとしましたが、dll が .net フレームワークからのものかどうかを判断する簡単な方法を見つけるのに苦労しました。
答えは、すべての依存関係を出力する Visual Studio の単純なスイッチ、またはそれを実行できるスタンドアロン アプリ、Nsis のプラグイン、または私が見逃したリフレクションに関する情報である可能性があります。
java - Java パッケージ サイクルの検出: 関連する特定のクラスを見つけるにはどうすればよいですか?
検出された「パッケージ間サイクル」に関与する特定のクラスを明示的にリストすることが目標であることを知っている場合、Java パッケージの循環依存関係を検出するためにどのツールをお勧めしますか?
classycleとJDependについては知っていますが、どちらもパッケージの循環依存関係に関係するクラスをリストできません。Metricsには興味深いサイクルのグラフ表示がありますが、これもパッケージに限定されており、非常に読みにくい場合があります。
私は取得するのにうんざりしています:
" 3 つのパッケージの間にはパッケージ サイクルの依存関係があります
。それぞれに xxx クラスがあります。
幸運にも適切なクラスを見つけて、このサイクルを断ち切りましょう"
サイクルが検出された理由を実際に説明する追加の手順を実行するツールを知っていますか (つまり、「関連するクラスを一覧表示する」など)。
Riiight... 結果を発表する時が来ました:
@l7010.de: ありがとうございます。特に「CAP」の回答については、(十分な担当者がいるときに)あなたに投票します...しかし、CAPは水中で死んでおり、私のEclipse 3.4とは互換性がありません。残りは商用で、フリーウェアのみを探しています。
@daniel6651: ありがとうございます。ただし、前述のとおり、フリーウェアのみです (最初に言及しておらず申し訳ありません)。
@izb findbugs の頻繁なユーザー (現在最新の 1.3.5 を使用) として、ワンクリックであなたの回答を受け入れることができます... findbug を有効にしてサイクルを検出するオプションを説明していただければ。その機能は、0.8.7 バージョンについてのみ言及されており(「クラス間の循環依存関係を検出するための新しいスタイル検出器」を探してください)、テストすることはできません。更新: 現在は機能しており、そのオプションがアクティブ化されていない古い findbugs 構成ファイルがありました。それでもCADは好きです;)
答えは...以下の私自身の(2番目の)答えを参照してください
dependencies - 1つのMakefileで異なるバージョンのコンポーネントを効率的に構築するにはどうすればよいですか?
私は自分自身を隅に追いやっていないといいのですが。Makefileの実装のほとんどの方法を理解しましたが、最後のビットを機能させることができません。ここの誰かが私がやろうとしていることをするためのテクニックを提案してくれることを願っています。
ソースリポジトリのバージョン管理されたファイルに「部品表」と呼ばれるものがあり、次のようなものを作成します。
Makefileで$(VER)をタグとして使用して、リポジトリからBOMを取得し、Makefileに含める依存関係ファイルを生成し、その依存関係を含めて再スキャンしてから、製品をビルドします。
より一般的には、私のMakefileにはいくつかのターゲット(A、B、Cなど)があり、それぞれの異なるバージョンを作成できるので、次のようにします。
依存関係ファイルには、3つのターゲットすべてに関する情報が含まれています。
ただし、依存関係ファイルの作成には多少の費用がかかるため、次のようにします。
Makefileに依存関係を再生成しないようにしたいと思います。そして、物事をできるだけ複雑にするために、私は次のことを行うかもしれません:
したがって、2番目のビルドへの依存関係を再生成する必要があります。
チェックアウトにより、依存関係の再生成に使用されるタイムスタンプが台無しになるため、依存関係ファイルがBOMではなく、BOMが変更されたことを示すものに依存する方法が必要だと思います。
私がやってきたのは、BOMチェックアウトを.PHONYターゲットで発生させ(常にチェックアウトされるようにするため)、最後のチェックアウトの内容を「.sig」ファイルで追跡することです(署名ファイルがない場合、または内容は新しいファイルの署名とは異なり、BOMが変更されます)、依存関係の生成は署名に依存します)。Makefileの上部に、いくつかの設定があります。
そして、私は常にする必要があるようです:
しかし、上記のように、私がそれを実行し、続行する場合:
その後、makeを呼び出すたびに依存関係が更新されます。だから私は試してみます:
と
ただし、署名が変更されても、依存関係の生成は作動しません。$(SIGS)がターゲットではないため、$(BOMS)ルールが署名を更新するときにmakeが気付かないためだと思います。
.sig:.bomルールを作成し、チェックアウトされたBOMのタイムスタンプをタッチで管理しようとしましたが、機能しませんでした。
誰かが次のようなことを提案しました:
しかし、SIGがBOMから作成される場合、BOMはどのようにSIGに依存することができますか?「BOMからSIGを作成し、SIGがBOMよりも新しい場合は、BOMをチェックアウトする」と書かれていることを読みました。そのプロセスをブートストラップするにはどうすればよいですか?最初のBOMはどこから来たのですか?
c++ - 大規模な C++ プロジェクトで不要な #include ファイルを検出するにはどうすればよいですか?
Visual Studio 2008 で大規模な C++ プロジェクトに取り組んでいますが、不要な#include
ディレクティブを含むファイルがたくさんあります。s が単なる成果物である場合#include
があり、それらを削除してすべてが正常にコンパイルされる場合もあります。また、クラスを前方宣言して #include を.cpp
ファイルに移動する場合もあります。これらのケースの両方を検出するための優れたツールはありますか?
java - 必要最小限の Java クラスパスを見つける
不要なjarファイルを検出するツールはありますか?
たとえば、hibernate.jar、junit.jar、easymock.jar を含むクラスパスで起動できる myapp.jar があるとします。しかし実際には、junit.jar を呼び出すコードにアクセスできないため、hibernate.jar のみを使用しても問題なく動作します。
リフレクションが問題を複雑にする可能性があることは理解していますが、リフレクションを無視するツールを使用することもできます。それを除けば、解決するのは比較的簡単な問題のように思えます。
そのようなツールがない場合、必要な依存関係を決定するためのベスト プラクティスは何ですか? それはよくある問題に違いないと私には思えます。