jar 打包依赖分离

This commit is contained in:
Lemon 2025-02-25 11:17:00 +08:00
parent 361d14ef46
commit fe737b7df2
1 changed files with 121 additions and 19 deletions

View File

@ -130,24 +130,126 @@
</dependencies> </dependencies>
<build> <build>
<!-- 设置构建的 jar 包名 --> <finalName>${project.artifactId}</finalName>
<finalName>${project.artifactId}</finalName> <plugins>
<plugins> <!-- 打JAR包不包含依赖文件显式剔除配置文件 -->
<!-- 打包 --> <plugin>
<plugin> <groupId>org.apache.maven.plugins</groupId>
<groupId>org.springframework.boot</groupId> <artifactId>maven-jar-plugin</artifactId>
<artifactId>spring-boot-maven-plugin</artifactId> <configuration>
<version>${spring.boot.version}</version> <!-- 剔除配置文件 -->
<executions> <excludes>
<execution> <exclude>*.properties</exclude>
<goals> <exclude>*.yml</exclude>
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 --> <exclude>*.xml</exclude>
</goals> <exclude>*.txt</exclude>
</execution> </excludes>
</executions> <archive>
</plugin> <manifest>
</plugins> <addClasspath>true</addClasspath>
</build> <!-- MANIFEST.MF 中 Class-Path 各个依赖加入前缀 -->
<!--lib文件夹内容需要 maven-dependency-plugin插件补充-->
<classpathPrefix>lib/</classpathPrefix>
<!-- jar包不包含唯一版本标识 -->
<useUniqueVersions>false</useUniqueVersions>
<!--指定入口类 -->
<!--<mainClass>com.lemon.TurbineApplication</mainClass>-->
</manifest>
<manifestEntries>
<!--MANIFEST.MF 中 Class-Path 加入自定义路径,多个路径用空格隔开 -->
<!--此处resources文件夹的内容需要maven-resources-plugin插件补充上-->
<Class-Path>./resources/</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</plugin>
<!-- 复制依赖的jar包到指定的文件夹里 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 用于复制指定的文件 -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<!-- 复制配置文件 -->
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<exclude>*.properties</exclude>
<exclude>*.yml</exclude>
<exclude>*.xml</exclude>
<exclude>*.txt</exclude>
</includes>
</resource>
</resources>
<outputDirectory>${project.build.directory}/resources/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- spring-boot-maven-plugin可以不使用可当做一般jar包来运行 -->
<!-- spring-boot-maven-plugin可统一包内文件结构-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>yudao</classifier>
<!--重写包含依赖包含不存在的依赖jar里没有pom里的依赖 -->
<includes>
<include>
<groupId>null</groupId>
<artifactId>null</artifactId>
</include>
</includes>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
<!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original生成新文件 *.jar -->
<!--<classifier>run</classifier> -->
</configuration>
</execution>
</executions>
</plugin>
<!-- 跳过单元测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project> </project>