1

短縮版:

共通の著作権情報、プロジェクト名、バージョン、inceptionYear、currentYear を含むフィルタリングされたリソース ファイルを、m2e プラグインを使用して Eclipse から使用したときにエラーが発生しないものを使用して、複数のプロジェクトに配布するための提案を探しています。

説明:

現在、${project .name}、${project.version}、${inceptionYear}、${currentYear} などのプロパティ ファイルを含むプロジェクト buildInfo があります。

次のことを行うparent.pomがあります。

  • build-helper-maven-plugin:timestamp-property ゴールを使用して currentYear プロパティを定義します
  • dependency:unpack ゴールを使用して、buildInfo プロパティ ファイルを ${project.build.directory}/buildInfo/${project.artifactId} にアンパックします。
  • resources:copy-resources ゴールを使用して、プロパティ ファイルをターゲット/クラスにコピーし、フィルター処理します。

parent.pom から継承するすべてのプロジェクトは、そのプロジェクトの特定の名前、バージョン、および開始年でフィルター処理されたプロパティ ファイルのコピーを取得するようになりました。

これは、プロジェクトの初期化時に著作権通知をログにダンプするために各プロジェクトで使用されます。具体的には、そのプロジェクトは、そのプロパティ ファイルがプロジェクトにちなんで名付けられたサブフォルダーに存在することを認識しています。

どうして:

著作権とバージョン情報をダンプする必要がある各プロジェクトのプロパティ ファイルの重複を削除するために、プロパティ ファイルを独自のプロジェクトに配置しました。

各プロジェクトの一意の名前のフォルダーに配置する以外に、正しいプロパティ ファイルを検索する方法は見つかりませんでした。

これらのプロジェクトの多くを (再) 使用してアプリケーションを構築します。つまり、この情報をさまざまな jar ファイルで見つける必要があるため、プロパティ ファイルの名前/パスは一意である必要があります。

問題:

Eclipse m2e-plugin は、dependency:unpack および build-helper-maven-plugin:timestamp-property の目標を好みません。

m2e-plugin を使用してプロジェクトを Maven プロジェクトとしてチェックアウトすると、parent.pom から継承する pom ファイルにエラーがあるとマークされます。

  • 2 つの目標の実行をパッケージ フェーズに移動しました。パッケージ フェーズは m2e の興味深いフェーズではありませんが、それでもエラーが発生します ( https://docs.sonatype.org/display/M2ECLIPSE/Project+build+lifecycle+mappingを参照)。 )。
  • ライフサイクル マッピング プラグインを追加して、タイムスタンプ プロパティの目標を無視するように設定しましたが、それでもチェックアウト時にエラーが発生し、チェックアウト後にエラーが表示されなくなります。
  • unpack ゴールを無視する設定も追加しました。

3 つの変更すべてで、うまくいくようです。残念ながら、Eclipse からプロジェクトを実行すると、プロパティ ファイルがなくなりました...

問題:

これはすべて、重複を取り除き、リリースごとにファイル変更をコミットする必要をなくすために行われました。

厄介なことに、私たちのソリューションでは、各 jar から情報を読み取り、About ボックスに表示するために、アプリケーションがどのプロジェクトで構成されているかを知る必要があります。

質問:

アプリケーションで使用される複数のプロジェクトに共通の情報を追加し、各 jar ファイルを検索できるようにするにはどうすればよいでしょうか?

また、m2e に適した方法で Maven を使用して実行できますか?

提案をお待ちしております、
/Henrik

4

1 に答える 1

1

別の SO answerで説明されているように、同様の目的で maven リモート リソース プラグインを使用しました。POM に m2e ライフサイクル マッピングを追加する必要がありましたが、<execute>アクションを使用しました。mvnコマンドラインとEclipseでうまく機能します 。

私が遭遇した唯一の問題は、Eclipse がリソース ファイルを編集すると何らかのロックを保持しているように見えることがあることです。次に、mvn clean「使用中のため、ファイルを削除できません」というレポートが表示されます。Eclipse のリソース プロジェクトで「プロジェクト構成の更新」を実行すると、問題が修正されます。少なくとも重複を避けることができ、共有リソースを頻繁に編集する傾向がないため、この問題点を受け入れます。(また、まだアップグレードしていない最新の Eclipse が役立つことを願っています!)

于 2012-08-14T13:00:46.453 に答える