4

Maven でビルドするための自動化されたソリューションを作成しようとしています。私のビジョンは、プロジェクトから JAR ファイルを作成し、すべての依存関係を JAR として「ターゲット」フォルダー内のサブディレクトリにコピーする Maven ビルドを作成することです。

Shade や Assembly を使用したくない (そのため、他の JAR のコンテンツを抽出して 1 つの「スーパー JAR」に含めたくありません。プロジェクトがより複雑になり、すべての JAR を含めると壊れてしまうためです) 1 つのファイルに)。

そのようなビルドPOMを行うにはどうすればよいですか?

4

3 に答える 3

7

ここには何の問題もありません。<packaging>jar</packaging> デフォルトでは、すべての依存ライブラリをjarにパックするべきではありません。

<plugin>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <phase>install</phase>
      <goals>
        <goal>copy-dependencies</goal>
      </goals>
      <configuration>
        <outputDirectory>${project.build.directory}/lib</outputDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>
于 2013-02-19T13:05:04.073 に答える
2

最新のコメントに関連して、このプラグインを使用してマニフェストにメイン クラスを追加します。

        <plugin>
            <!-- Build an executable JAR -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.test.YourMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
于 2013-02-19T13:31:15.647 に答える
0

maven-assembly-plugin を使用して、ディレクトリ内の他のファイルを選択して .zip ファイルを作成できます。この方法を使用して、プロジェクトの配布 zip ファイルを作成しました。maven-assembly-plugin documentationで利用可能ないくつかの例があります。

于 2013-02-19T13:06:21.800 に答える