ホームページ  >  記事  >  Java  >  JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?

JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?

WBOY
WBOY転載
2023-04-29 18:31:142537ブラウズ

Maven パッケージ化では、通常 2 種類のパッケージを生成できます。1 つは直接実行できるパッケージ、もう 1 つは依存パッケージ (コンパイル済みパッケージ) です。他のタイプを変更する必要がある場合は、デフォルトで Maven パッケージの jar が使用されます。 pom.xml

<packaging>jar/ear/ejb</packaging>

Maven プロジェクトにデフォルトで導入されるプラグインを変更できます:

JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?

1 . 一般的な jar (実行できません )

生成された jar はコンパイルされたパッケージであり、依存する jar パッケージはパッケージ化されません。コンソールのコンパイル ログから、maven-jar-plugin:2.4 プラグインが使用されていることがわかります。

Java コンパイル プラグインでは、jdk バージョンなどを設定できます (設定しない場合はデフォルトを使用します。設定する必要はありません)

<!-- java编译插件 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

方法 1: コマンド ライン メソッド

コンソール実行 mvn clean package

メソッド2: マウス操作

Maven->プラグイン->クリーン->パッケージ

2. 実行可能ファイルJar

この種の生成された jar は、通常、java -jar を通じて直接実行できます。

方法 1: SpringBoot フレームワーク (依存) jar 上)

この方法では、パッケージ化に spring-boot-maven-plugin プラグインを使用します。 #最初のステップ:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.4.0</version>
    <configuration>
        <fork>true</fork>
        <!--指定启动的入口,可以省略,springboot会自动查找启动类-->
        <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
    </configuration>
</plugin>
を pom.xml に追加します JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?

2 番目のステップ: コンソールの実行

mvn clean package spring-boot:repackage

注意: 現在の pom ファイルで親 (オプション) が指定されている場合

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
</parent>
コンソール コマンドのみを実行する必要があります

#mvn clean package

#方法 2: 依存関係パッケージとプロジェクト パッケージの分離 (外部ディレクトリ lib に応じて)

JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか? 依存関係のある JAR パッケージを lib ディレクトリ (パッケージ化メソッドは JAVA プロジェクトに一般的です)。この方法では、maven-jar-plugin プラグインの導入が必要です。

最初のステップ: pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>
# を追加します。
##2 番目のステップ: コンソールの実行

mvn clean dependency :copy-dependency -DoutputDirectory=target/lib package

注: コンソールの実行を簡素化したい場合コマンドを実行すると、プラグイン構成を追加できます

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

その後、コンソール実行

mvn clean package

方法 3: 依存パッケージと1 つの jar 内のプロジェクト (非 springboot プロジェクト)

このメソッドは maven-assembly-plugin プラグインを使用しますが、このメソッドは依存する jar を最終的な jar にコピーするのではなく、依存するクラス ファイルをコピーします。したがって、この方法では一部のリソース ファイルが失われるため、springboot プロジェクトの起動に失敗します。

最初のステップ: pom.xml の追加

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.5</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?2 番目のステップ: コンソールの実行

mvn clean Assembly:single

または操作マウスで Maven プロジェクト (右列) -> プラグインを選択 -> アセンブリを選択 -> アセンブリをクリック:assembly

概要: 以下にのみ使用できます。 springboot プロジェクト 方法 1 と 2 は正常に起動できます。

3. Scala プロジェクトのパッケージ化

最初のステップ:

JavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?

<plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                    <goal>testCompile</goal>
                </goals>
        </execution>
    </executions>
    <configuration>
        <scalaVersion>${scala.version}</scalaVersion>
        <args>
            <arg>-target:jvm-1.5</arg>
        </args>
    </configuration>
</plugin>

を pom.xml の build>plugins に追加します。 2 番目のステップ: コンソール実行

Maven クリーン パッケージ

またはマウス実行 Maven プロジェクト (右列) -> ライフサイクルの選択 -> パッケージをクリックするか、パッケージをインストールします

4 Groovy プロジェクトのパッケージ化

最初のステップ: pom.xml の build>plugins に

#

<plugin>
    <groupId>org.codehaus.gmavenplus</groupId>
    <artifactId>gmavenplus-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <goals>
                <goal>addSources</goal>
                <goal>addStubSources</goal>
                <goal>compile</goal>
                <goal>execute</goal>
            </goals>
        </execution>
    </executions>
</plugin>

を追加します。2 番目のステップ: コンソールの実行

maven クリーン パッケージ

または、マウスで Maven プロジェクトを実行 (右列) -> ライフサイクルを選択 -> パッケージをクリックするか、パッケージにインストールします

以上がJavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。