您的位置:首页 > 产品设计 > UI/UE

Maven编译打包成可运行的Jar包

2017-12-04 00:00 344 查看
刚接触Maven项目,以前都是普通的Java Project,少了啥就往lib文件夹下面加依赖的Jar包。工作中使用到Maven构建项目,开始慢慢熟悉使用,收到的第一项任务就是,把项目打包成一个独立可运行的Jar包。

一开始,还是按照以前的老办法:右键->Export->Runnable JAR file,居然也能运行。但是发现一个问题,这样把pom文件中依赖的所有lib都放入了运行的Jar包中,导致Jar包显得十分臃肿。于是便有了第二种方法,使用Maven的plugin来打包。

先贴出pom中配置,后面再介绍如何使用:

<plugins>
<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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>cn.rumoss.maven.PackageTest</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>

需要修改的地方有两处:

(1)outputDirectory:项目依赖的文件输出路径,比如项目中依赖了Spring,如果配置了该路径,则项目中使用到的Spring的Jar包都会被复制到该路径下;

(2)mainClass:配置Jar运行的入口类的全限定名(包名+类名);

(3)第三个plugin:maven-surefire-plugin中testFailureIgnore的作用是,当test文件夹下编译运行不通过时,不会影响到Jar包的生成;

(4)使用方法:配置好后,【右键】->【Run As...】->【Maven install】,Console里面提示Build成功后,即可到target目录下找到生成的Jar包和依赖的lib文件夹。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Maven 打包 Build