<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <includes> <!-- jar中不包含其他依赖包--> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration></plugin><!--拷贝依赖到jar外面的lib目录--><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependency</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!--输出目录--> <outputDirectory>${project.build.directory}/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> </configuration> </execution> </executions></plugin><!-- 拷贝资源文件 到指定的resource目录--><plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <!-- 资源文件输出目录 --> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <!--包含的文件--> <includes> <include>*/**</include> </includes> </resource> </resources> </configuration> </execution> </executions></plugin><!--指定配置文件--><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 --> <addMavenDescriptor>false</addMavenDescriptor> <manifest> <!-- 是否要把第三方jar加入到类构建路径 --> <addClasspath>true</addClasspath> <!-- 外部依赖jar包的最终位置 --> <classpathPrefix>lib/</classpathPrefix> <!-- 配置项目启动类 --> <mainClass>com.example.model.one.ModeloneApplication</mainClass> </manifest> <!-- 指定配置文件的新目录--> <manifestEntries> <Class-Path>resources/</Class-Path> </manifestEntries> </archive> <excludes> <!--以target/classes为根目录--> <!--资源文件排除--> <exclude>/*.*</exclude> <!--html页面排除--> <exclude>/templates/</exclude> <!--静态文件排除--> <exclude>/static/</exclude> </excludes> </configuration></plugin>至此Springboot jar包瘦身配置完成
1、target目录
生成了lib和resource文件
image-20210528153717855.png
2、jar包中
生成的jar包中排除了lib和资源文件
image-20210524145944087.png
3、执行jar查看
在jar包所在目录执行
> java -jar .\model-one.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.3.4.RELEASE) === ===可正常运行
FROM openjdk:8-jdk-alpine#指定时区RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo Asia/Shanghai > /etc/timezoneARG JAR_FILEARG OUT_DIRECTORY#复制依赖jarCOPY ${OUT_DIRECTORY}/lib /home/project/lib/#复制配置文件COPY ${OUT_DIRECTORY}/resources /home/project/resources/#复制项目jarCOPY ${JAR_FILE} /home/project/model-one.jar#声明使用的端口,需要-p去绑定宿主机否则将随机绑定EXPOSE 8081ENTRYPOINT ["sh", "-c", "java -Djava.security.egd=file:/dev/./urandom -jar /home/project/model-one.jar"]<!--docker 插件--><plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.35.0</version> <configuration> <!-- Docker 远程管理地址--> <dockerHost>tcp://127.0.0.1:2375</dockerHost> <!--私服地址不使用可以不配置--> <!--<registry>私服地址</registry>--> <images> <image> <!--命名空间/仓库名称:镜像版本号--> <name>${project.artifactId}:${project.version}</name> <build> <args> <!--为Dockerfile中提供参数--> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> <OUT_DIRECTORY>target</OUT_DIRECTORY> </args> <!--dockerFile位置--> <dockerFileDir>${project.basedir}</dockerFileDir> </build> </image> </images> </configuration></plugin>原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。