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中配置,后面再介绍如何使用:
需要修改的地方有两处:
(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文件夹。
一开始,还是按照以前的老办法:右键->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文件夹。
相关文章推荐
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行
- 分享知识-快乐自己:IDEA下maven编译打包Java项目成jar包但是resource下配置文件无法编译
- 笔记:Java编译打包成可以双击运行的jar
- maven打包可运行的JAR
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行(可以使用)
- maven打包可执行jar文件运行报错
- Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包
- eclipse中maven项目有一个红叉,但项目编译打包运行都没有问题——孙振超
- 包的定义及导入(打包编译、运行以及jar命令的使用)
- [常用maven配置]scala配置以及打包可运行JAR
- Maven 如何打包可运行jar包
- maven打包可运行的fat-jar的简单方法
- Snaker开源工作流研究003——s-web源码Maven编译打包运行
- maven: 打包可运行的jar包(java application)及依赖项处理
- maven打包可运行的JAR
- onejar-maven-plugin把java类与lib打包为一个可运行jar
- MAVEN打包可运行jar包
- 将eclipse下编译的class文件打包成hadoop集群可以运行的jar包的过程
- Maven打包可运行jar
- Maven Spring 项目打包成可运行的jar包 (用maven-shade-plugin)