2

Eclipse で新しい Maven プロジェクトを作成しました。pom.xml を持たず、典型的な Maven プロジェクトのディレクトリ構造を持たないレガシー ユーティリティ プロジェクトである別の Eclipse プロジェクトに依存関係を追加する必要が生じるまで、これは正常に機能していました。(これは、典型的な Eclipse Java プロジェクトのディレクトリー構造を持っています)。この別のプロジェクトは、Maven プロジェクトと同じ Eclipse ワークスペースにあります。

これに関する他の投稿を見ると、通常、解決策は他のプロジェクトの jar をビルドして Maven にインストールすることのようです。ただし、Maven プロジェクトでコードを記述しながらユーティリティ プロジェクトのコードを積極的に変更しているため、依存関係を満たすために jar を一度だけインストールすることはできません。

これを処理して、両方のプロジェクトで同時にコーディングし、maven をクリーンにビルドできるようにする最も簡単な方法は何ですか? (もちろん、Eclipse はプロジェクトの依存関係だけで問題なくビルドできます。)

アップデート

Build Helper プラグインを使用してユーティリティ プロジェクトのソース フォルダーを pom に追加することは、ソリューションへの実行可能なパスでしたが、その後、ユーティリティ プロジェクトのすべての依存関係を新しい Mavne プロジェクトに更新する必要があり、プロセス全体も作成し始めました。時間がかかります(また、私が望んでいた依存関係のチェーンでもありません)。すべての依存関係を追加していれば、Build Helper の提案がうまくいったと思います。

とりあえず、ユーティリティ プロジェクトの jar をビルドし、maven にインストールしました。これが最速の解決策であることが判明しました。ユーティリティ プロジェクトの構造を変更せずに (以下の FrVaBe で提案されているように) Mavenize を試み、後で​​ poms をリンクできるかどうかを確認します。

報告できる完全な解決策が得られるまで、この質問を開いたままにします。これは、他の人が抱える問題であると想定しているためです(レガシープロジェクトを新しいmavenプロジェクトと統合しようとしています)。

4

2 に答える 2

3

開発時には、依存関係をSystem Dependencyとして追加できます。この場合、ファイル パス (開発中の utility.jar ファイルへのパス) によって解決されます。

上記のリンクで説明されているように追加されます。

  <dependencies>
    <dependency>
      <groupId>my-utility</groupId>
      <artifactId>my-utility</artifactId>
      <version>1.0</version>
      <scope>system</scope>
      <systemPath>${somewhere}/lib/my-utility.jar</systemPath>
    </dependency>
  </dependencies>

システム依存関係の Maven 処理は、特別な場合があります。たとえば、それらは戦争パッケージには含まれません! したがって、作業が完了したら、ユーティリティ ライブラリを Maven リポジトリにインストールするか、リポジトリ マネージャー (Nexus/Artifactory) にデプロイすることを強くお勧めします。

于 2012-11-14T15:13:49.890 に答える
1

ユーティリティプロジェクトのsrcフォルダーをEclipseの作業プロジェクトに追加できます。あなたの開発目的のために。

right click on Working project
go to properties and choose java build path
go to source tab
Add your utility project src folder to that.

後で、jarをmaven依存関係としてインストールできます。

于 2012-11-14T15:18:08.293 に答える