シーン
プロジェクトによって生成された jar ファイルは、主に依存関係が多すぎるため、大きすぎます。コードが更新されるたびに、パッケージ化およびデプロイ時にこれらの依存関係を繰り返しアップロードするのに時間がかかります。そのため、jar の外で依存関係を抽出することを検討してください。パッケージ。このように、依存関係とソース コードは個別にアップロードされるため、更新の反復ごとに、依存関係が変更されていない限り、デプロイ中にソース コードからコンパイルされた jar パッケージをアップロードするだけで済みます。
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<!-- 配置启动类 -->
<mainClass>
com.example.TestApplication
</mainClass>
<!-- 添加依赖路径 -->
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<!-- <manifestEntries>-->
<!-- <Class-Path>./</Class-Path>-->
<!-- </manifestEntries>-->
</archive>
<!-- <excludes>-->
<!-- <exclude>config/**</exclude>-->
<!-- </excludes>-->
</configuration>
</plugin>
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<!-- not append assembly id in release file name -->
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<!--打包的详细描述,需要配置额外文件-->
<descriptor>assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<!-- 配置执行器 -->
<execution>
<id>make-assembly</id>
<!-- 绑定到package命令的生命周期上 -->
<phase>package</phase>
<goals>
<!-- 只运行一次 -->
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
アセンブリ/アセンブリ.xml
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 https://maven.apache.org/xsd/assembly-2.1.0.xsd">
<id>package</id>
<formats>
<!--压缩文件的类型-->
<format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<!--需要包含的文件与输出的路径-->
<!-- <fileSet>-->
<!-- <directory>src/main/bin</directory>-->
<!-- <outputDirectory>bin/</outputDirectory>-->
<!-- </fileSet>-->
<!-- <fileSet>-->
<!-- <directory>src/main/resources</directory>-->
<!-- <outputDirectory>/</outputDirectory>-->
<!-- </fileSet>-->
<fileSet>
<!-- 提取jar文件到外部 -->
<directory>${project.build.directory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<!-- 提前依赖到lib文件夹 -->
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
<excludes>
<exclude>${groupId}:${artifactId}</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
パック
mvn clean package
ファイルの生成
走る
test-0.0.1.tar.gzを解凍し
て実行
java -jar test.0.0.1.jar