赞
踩
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <includes> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> <include> <groupId>com.huacloud.tax.rpc</groupId> <artifactId>common</artifactId> </include> </includes> </configuration> </plugin> </plugins> </build>
命令:mvn clean package install ‘-Dmaven.test.skip=true’
查看xxxx.jar里面META-INF目录下的MANIFEST.MF文件:
Main-Class的值为:PropertiesLauncher
启动参数loader.path配置外置依赖包的加载路径
<build> <finalName>打出jar包的名称</finalName> <plugins> <!-- 1、编译出不带 lib 文件夹的Jar包 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--表示编译版本配置有效--> <fork>true</fork> <!--引入第三方jar包时,不添加则引入的第三方jar不会被打入jar包中--> <includeSystemScope>true</includeSystemScope> <!--排除第三方jar文件--> <includes> <include> <groupId>nothing</groupId> <artifactId>nothing</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <!-- 2、完成对Java代码的编译,可以指定项目源码的jdk版本,编译后的jdk版本,以及编码 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- 源代码使用的JDK版本 --> <source>${java.version}</source> <!-- 需要生成的目标class文件的编译版本 --> <target>${java.version}</target> <!-- 字符集编码 --> <encoding>UTF-8</encoding> <!-- 用来传递编译器自身不包含但是却支持的参数选项 --> <compilerArguments> <verbose/> <!-- windwos环境(二选一) --> <!--<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>--> <bootclasspath>D:/App/jdk/jdk1.8.0_221/jre1.8.0_221/lib/rt.jar;D:/App/jdk/jdk1.8.0_221/jre1.8.0_221/lib/jce.jar</bootclasspath> <!-- Linux环境(二选一) --> <!--<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>--> </compilerArguments> </configuration> </plugin> <!-- 3、将所有依赖的jar文件复制到target/lib目录 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!--复制到哪个路径,${project.build.directory} 缺醒为 target,其他内置参数见下面解释--> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <!-- 4、指定启动类,指定配置文件,将依赖打成外部jar包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <!-- 是否要把第三方jar加入到类构建路径 --> <addClasspath>true</addClasspath> <!-- 外部依赖jar包的最终位置 --> <classpathPrefix>lib/</classpathPrefix> <!-- 项目启动类 --> <mainClass>org.jeecg.JeecgSystemApplication</mainClass> </manifest> </archive> <!--资源文件不打进jar包中,做到配置跟项目分离的效果--> <excludes> <!-- 业务jar中过滤application.properties/yml文件,在jar包外控制 --> <exclude>*.properties</exclude> <exclude>*.xml</exclude> <exclude>*.yml</exclude> </excludes> </configuration> </plugin> </plugins> </build>
如果该参数不设置为 true 的话是不能被打包进来的
我们需要将打包插件替换为 maven-jar-plugin,然后使用该插件拷贝依赖到 jar 到外面的 lib 目录
当前项目config目录下
> 当前项目根目录下
> 类路径config目录下
> 类路径根目录下
clean package
MANIFEST.MF文件内容:
MANIFEST.MF文件指定了依赖包位置所以不需要Dloader.path指定依赖包
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。