2

私はEclipseでJavaプロジェクトを書きました。今、私はそれをmavenの下で管理したいと思っています。移植する方法は、m2eclipse で新しい Maven プロジェクトを作成し、すべての Java と使用済みの jar を対応するディレクトリにコピーすることです。つまり、Java ファイルを src/main/java に配置し、jar ファイルを src/main/resource に配置します。 .

問題は次のとおりです: このプロジェクトを maven でビルドすると、結果の jar 内のマニフェスト ファイルにクラスパス情報が含まれません。

ローカルの Maven リポジトリを使用できることがわかりましたが、これは私にとって良い解決策ではないと思います。

src/main/resource dir の jar を使用し、jar 名をマニフェスト ファイルに書き込みたい。

どうすればできますか?

4

1 に答える 1

3

まず第一に、既存のプロジェクトを Maven に変換したい場合は、そのm2eclipseを実行するためのウィザードがあり、それを実行できます。Eclipse Indigo のm2eでは、 Maven > Enable Maven Natureの下にあります。

クラスパス情報をマニフェストに追加するには、次のようにmaven-jar-plugin構成を使用できます。

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <classpathPrefix>lib</classpathPrefix>
        </manifest>
      </archive>
    </configuration>
  </plugin>

これにより、クラスパス エントリがマニフェストに追加され、libというディレクトリから各 jar ファイルが参照されます。

ランタイム環境では、必要なライブラリがlibディレクトリ (実行可能な jar ファイルの隣) にあることを確認する必要があります。これを自動化したい場合は、Maven Assembly Pluginを使用できます: http://maven.apache.org/plugins/maven-assembly-plugin/

于 2012-04-19T09:23:52.093 に答える