maven-jar-plugin插件的使用需要在pom.xml文件中添加此插件,我们可以对此插件进行配置。
配置参考如下:
<plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <!--打包时过滤以下文件--> <excludes> <exclude>config/*</exclude> <exclude>**/*.pem</exclude> <exclude>**/*.p12</exclude> </excludes> <!--配置项目运行参数--> <archive> <manifest> <!--在项目中添加使用外部jar包的classpath--> <addClasspath>true</addClasspath> <!--指定项目启动引用的依赖--> <classpathPrefix>lib/</classpathPrefix> <!--指定主类--> <mainClass>com.shengruitn.schedule.ScheduleApplication</mainClass> </manifest> </archive> </configuration> </plugin>
对于一些新手来说,很多时候都以为配置好这个插件,然后进行打包,往往会发现没有打包lib依赖目录,这样的jar包肯定是不能运行的,因为它找不到项目所需的依赖。
对于这个问题,我们还需要多配置一个插件:maven-dependency-plugin。这个maven-dependency-plugin插件主要是用于打包项目所需的依赖的。具体配置如下:
<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> <!--指定输出目录--> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin>
在配置好以上两个插件后,运行mvn -Dmaven.test.skip=true package命令进行打包。
打包后可以看到生成了lib目录,以及jar包:
我们可以运行一下这个jar包,检验是否可以启动。
命令: java -jar schedule.jar
启动成功了。