最近、スタック オーバーフローに質問を投稿し、 Eclipseで依存関係を持つJARファイルを作成する方法についての説明を探しました。
私が質問をしたとき、私の質問の言い方がまずかったことがすぐに明らかになり、回答者を混乱させていました。そのため、Eclipse でこれを行う方法について質問を投稿したところ、すぐに「Mavenに切り替えてください。ビルド ツールの作業を IDE に頼らないでください」という回答が得られました。これは、特に、自分のプロジェクトの JAR ファイルを生成するために既にAntを使用していると述べたことを考えると、私にとっては役立つというよりも、少し言い逃れのように思えました。理由を尋ねたところ、「あなたのコードは、それが書かれた IDE とは独立してビルドできるはずだから」という返事が返ってきました。
まず最初に、どのようにして JAR ファイルを作成し、その依存関係を JAR ファイルに含めるか、またはライブラリ フォルダーに配置してコードを IDE に依存させることができるのでしょうか?
dist ディレクトリの有無にかかわらず、私のコードには、典型的な Java ソース ディレクトリ構造を持つsrcディレクトリがまだ含まれています。これは非 sequitur のようです。クラス ライブラリで作業し、いくつかの小さな変更を行い、テストのために開発マシンにデプロイする必要がある場合、IDE で簡単にすべての依存関係を含む JAR ファイルを簡単にビルドしてデプロイできると思います。それはどこか。
その能力を持つことは、設計ステップではなく構築ステップです。ソース コード ディレクトリの構造や、コードに関するものはまったく変更されません。部分クラスや、私が使用している IDE 専用に設計された他の卑劣な Visual Studio タイプのものは作成されません。有効なマニフェストとその依存関係を含む JAR ファイルを要求しているだけです。IDEに求めることは本当にそんなに多いのでしょうか、それとも私はこれが間違っていますか?
また、ある IDE から別の IDE に変更するには、何らかの変換作業が必要になるように思えます。私が Java で書いたコードについては、特定のアセンブリがどこにあるかを明示的に述べているものはありません。また、インストール中にディスク上の場所が環境変数に追加される API ではないと仮定すると、これらの参照を常に手動で解決する必要があります。
私が間違っている場合は修正してください。ただし、Javaコンパイラはソースコードのディレクトリ構造を強制しません(正しくない場合はNoClassDefタイプの例外をスローします)。したがって、IDE(少なくともJavaの場合)はその要件に基づいて構築されています?
また、IDE の変更はまれなイベントだと感じています。人々は自分のツールに慣れ、まったく新しい IDE を同じプロジェクトで同じ言語で使い始めることを無作為に決定することはありません。他の状況では、人に変化を迫る必要があります (新しいテクノロジーなど)。
また、多くの開発者が同じ場所で同じ言語で作業し、複数の IDE を使用する可能性はほとんどないと思います。私が開発チーム全体で働いたすべての場所で、開発チームが同じ種類のプロジェクトに取り組んでいる同じツール セットを使用しています。Android 開発者は Eclipse を使用しており、ASP.NET開発者は Visual Studio を使用しています。それが起こることは理解していますが、私の経験では、IDE の変更は通常、最近リリースされた同じ IDE の新しいバージョンに変換することを意味し、通常はそれが行われます。ある種の下位互換性、または変換ウィザードを備えています。
私は面白おかしく言おうとしているわけでも、私の以前の記事に関わった人々を攻撃しようとしているわけでもありません。彼らの回答に寄せられた賛成票の数を考えると、コミュニティのほとんどが同意しているように見えます。羊にならないために、理解を助けてください.