Maven パッケージ化では、通常 2 種類のパッケージを生成できます。1 つは直接実行できるパッケージ、もう 1 つは依存パッケージ (コンパイル済みパッケージ) です。他のタイプを変更する必要がある場合は、デフォルトで Maven パッケージの jar が使用されます。 pom.xml
<packaging>jar/ear/ejb</packaging>
Maven プロジェクトにデフォルトで導入されるプラグインを変更できます:
生成された 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>
コンソール実行 mvn clean package
Maven->プラグイン->クリーン->パッケージ
この種の生成された jar は、通常、java -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 に追加します 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>
コンソール コマンドのみを実行する必要があります
#方法 2: 依存関係パッケージとプロジェクト パッケージの分離 (外部ディレクトリ lib に応じて)
依存関係のある JAR パッケージを lib ディレクトリ (パッケージ化メソッドは JAVA プロジェクトに一般的です)。この方法では、maven-jar-plugin プラグインの導入が必要です。
<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 番目のステップ: コンソールの実行
注: コンソールの実行を簡素化したい場合コマンドを実行すると、プラグイン構成を追加できます
<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>
2 番目のステップ: コンソールの実行
mvn clean Assembly:singleまたは操作マウスで Maven プロジェクト (右列) -> プラグインを選択 -> アセンブリを選択 -> アセンブリをクリック:assembly概要: 以下にのみ使用できます。 springboot プロジェクト 方法 1 と 2 は正常に起動できます。
3. Scala プロジェクトのパッケージ化
最初のステップ:<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 クリーン パッケージ#
<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 クリーン パッケージ以上がJavaのMavenプロジェクトでjarをパッケージ化する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。