問題タブ [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# でアセンブリとその依存関係からインスタンスを作成する
クラスのソースコードを動的に作成してコンパイルするアプリ(MyAppと呼びましょう)があります。ソース コードをコンパイルするときに、別のフォルダーに既に存在する別の DLL (この新しく作成されたクラスの基本クラス) も参照します。DLL をコンパイルして出力するには、次のようにします。
後でアプリで (または次回アプリを実行するときに) クラスのインスタンスを作成しようとします。新しく作成されたクラス (Blah と呼びましょう) の DLL と基本クラスの両方がどこにあるかはわかっています。次のコードを使用して、新しいクラスのインスタンスを作成しようとします。
上記のように Assembly.CreateInstance を呼び出すと、インスタンスを作成できないというエラーが表示されます。assembly.GetReferencedAssemblies() を確認すると、標準参照とアプリ (MyApp.exe) の参照が含まれていますが、最初にクラスをコンパイルするときに使用した依存基本クラス (SomeAdditionalReferencedDLL.dll) の参照はありません。 .
インスタンスを作成するために何らかの方法で基本クラスの参照を追加する必要があることはわかっていますが、これを行う方法がわかりません。アセンブリとそのすべての依存関係がある場合、アセンブリからクラスのインスタンスを作成するにはどうすればよいですか?
ありがとう
java - Javaプログラムで使用されているクラスを判別するにはどうすればよいですか?
一部のクラスがアプリで効果的に使用されている時期を一覧表示するツールはありますか?さらに良いことに、JARライブラリを自動的にトリミングして、参照と使用の両方のクラスのみを提供するツールはありますか?
c# - 同じバイナリ参照に依存する複数のプロジェクトのソリューション
私は10個のプロジェクトを持つソリューションを持っています。多くのプロジェクトは、サードパーティの DLL に依存していますfoo.dll。
問題は、foo をアップグレードすると、どういうわけか Visual Studio でオブジェクト ブラウザに移動すると、2 つのバージョンのfoo.dll.
古いバージョンの foo.dll を参照しているプロジェクトを見つけて、すべてのプロジェクトで依存関係が 1 つだけになるようにアップグレードするにはどうすればよいですか?
java - どのJARがどのJARに依存しているかをEclipseでどのように把握しますか?
Eclipse JDT AST 解析クラスを使用しようとしています。最初の JAR を含め、さらにいくつかの依存関係を整理した後、それは 7 つ以上の JAR であり、まだ NoClassDefFoundError 例外があります。この状況は、ドキュメントがほとんどまたはまったくないライブラリをテストしようとすると常に発生します。試行錯誤は、この問題を解決するための非常にばかげた (そして厄介な) アプローチのようです。
Eclipse を使用してこれを自動的に整理する方法はありますか?
更新:後で、持っているすべての JAR を追加し、Ctrl-T (タイプを表示/検索するため) を使用すると、JAR を手動で見つけることができることがわかりました。それが、これまで Google が提供してきたソリューションでした。より良い方法はありますか?
ant - Ivy: 推移的な依存関係を削除するにはどうすればよいですか?
プロジェクトの依存関係を管理するためにIvyを使用しています。
ここまでで、Hibernate と servlet-api への依存関係を指定しました。ただし、hibernate jar 自体には、 jaasやjaccなど、実際には必要のない多くの依存関係があります。
jaas と jaac は Sun のライブラリであり、それらのライセンスはそれらを Maven リポジトリに配置することを禁じているため、Ivy はそこにそれらを見つけることができません。
- Ivy が Hibernate をダウンロードするようにするにはどうすればよいですか?
- おまけとして、実際にそれらが必要で、Sun から Jar をダウンロードした場合、Ivy はマシンのどのフォルダーでそれらを探しますか?
c# - インターフェイスの依存関係の発見
すべて C# で記述された非常に大規模な (>2M SLOC) ソフトウェア プロジェクトのメンテナンスを引き継ぎました。ドキュメントはほとんどありません。現在、パブリック インターフェイス (約 400) を持つモジュールに変更を加えたいと考えていますが、ソリューション内の他のすべてのモジュール (合計で約 50 あります) がこのパブリック インターフェイスを使用している可能性があるかどうかはわかりません。
このような状況で、インターフェースの依存関係の使用ツリーをどのように作成しますか? コードベースが大きすぎて、プロジェクト エクスプローラーをナビゲートしてソース コードを読むことができません。このタイプの依存関係分析ツリーを作成するために、どのツールまたは方法を使用しましたか?
工具は一切買いたくないです。クラス ビューなどの Visual Studio ツールは、このサイズのプロジェクトをうまく処理できないようです。ソースコードを単純にたどり、パターンマッチングを使用して独自の依存関係/インターフェース使用データベースを構築する独自の sed/awk/perl っぽいスクリプトを作成することを考えましたが、もしあれば難しい方法で何かをしたくありません。簡単な方法。
ありがとう!
dependencies - 別々のコンポーネントのバージョン間の依存関係を管理する最善の方法は何ですか?
私は以前の仕事でこの問題に遭遇し、現在の仕事でも再び発生しました。つまり、運が非常に悪いか、この問題を解決できるツールまたは組織システムを認識していません。
どちらの場合も、最終製品はいくつかの独立したコンポーネントで構成され、それぞれが合意されたインターフェースを介して隣接コンポーネントと通信していました。問題は、時間の経過とともにインターフェイスが変更され、すべてが機能し続けるように、それぞれのコンポーネントも更新する必要があることです。
それ自体は問題ありません。問題は、SCM の履歴をさかのぼろうとすると、バグの追跡が非常に困難になることです。ある時点で、デバッグしようとしているコンポーネントがシステムの他の部分と互換性がなくなり、それらに対してテストできなくなるためです。それらをロールバックすることもありません。
次の例を見てください。
- クライアント/サーバー製品があり、簡単にするために、どちらも完全に動作する状態で開始するとします。これらのバージョンを client-1.0 および server-1.0 と呼びます。
- しばらくすると、バグ修正と機能が両方に加えられます。これで client-1.7 と server-1.2 になりました。
- サーバーのインターフェイスが変更されたため、クライアントも変更する必要があります: server-2.0 と client-1.8。
- バージョン 1.9 のクライアントでバグが見つかったため、以前のバージョンをテストして、サーバーで動作しなくなった場所を確認したいと考えています。ただし、1.8 を過ぎた場合は、サーバーも元に戻す必要があります。
私が提供するシナリオ例は非常に単純化されていますが、問題は次のとおりです。クライアントとサーバーのどのバージョンが相互に互換性があるかを強制する最良の方法は何ですか?
ドキュメントを通じてこれを行うことを検討しましたが、必然的に、人間の性質が勝利し、誰かが自分のコンポーネントまたは他のコンポーネントの更新を忘れます。バージョンを一致させることも考えました(つまり、サーバーが2.0になると、クライアントも昇格します)が、問題は、クライアントがサーバーとは関係のない他のコンポーネントの依存関係を持っている可能性があるため、意味がありません全体的にバージョンを更新します。
この問題を解決するには、何らかの解決策が必要です。誰か提案や私の研究の出発点はありますか?
plugins - プラグインの依存関係のベスト プラクティス
インターフェイスを介してプラグインをサポートするアプリケーションがあります。一方、プラグイン自体には多くのロジックとコードが含まれています。プラグインには、アプリケーションが公開するインターフェイスのほかに、アプリケーション ライブラリへの依存関係 (プロジェクトおよび dll 参照) があります。
アプリケーション コア ライブラリには、プラグインで使用できる再利用可能なコンポーネントが多数あります。ただし、これらのコンポーネントのいずれかが変更されると、プラグインとアプリケーションの両方が影響を受けます。どちらにも依存関係があるためです。
プラグインが拡張するシステムへの依存関係を含むプラグインを使用することは許容されますか? この問題に関するベスト プラクティスは何ですか?
あなたの考えや経験を共有してください。
java - Java 6 ServiceLoader 機能 (META-INF/services) をサポートするライブラリはどれですか?
Java 6 のServiceLoader機能(現在は正式にサポートされています) の採用率はどのくらいなのか知りたいです。依存関係を見つけるための優先的な方法として、これを使い始めたいと思っています。明らかに、必要な構成ファイルが配置された状態で jar が既に出荷されている場合、これははるかに簡単になります。
ちょっと調べてみただけで、MySQL JDBC ドライバーに "META-INF/services" が配置されていることがわかりました (少なくとも mysql-connector-j の v5.1 では)。
これを提供するために知られている他の主要な/広く使用されているライブラリを知りたいです。
apache-flex - ソースファイルが変更された場合にのみ Ant タスクを実行する方法は?
これを行う簡単な方法があるはずです。SWC ライブラリに依存する ant を使用して Flex アプリを構築します。これは、必要かどうかに関係なくライブラリを再構築することを除いて、正常に動作します。ライブラリのソース ファイル (*.as、*.mxml) のいずれかが SWC よりも新しい場合にのみタスクを実行するように ant に指示するにはどうすればよいですか?
<dependset> を見てきましたが、ファイルを削除するだけで、タスクを実行する必要があるかどうかを判断していないようです。<depend> は、ソース ファイルとターゲット ファイルの間に 1 対多の関係ではなく、1 対 1 の関係を想定しているようです。多くの入力ファイルと 1 つの出力ファイルがありますが、中間オブジェクト ファイルはありません。
どうもありがとう、アレックス