java中的Maven项目的两种打包方法
来源:互联网 发布:手机捕鱼游戏源码 编辑:程序博客网 时间:2024/05/17 07:02
基于Maven构建的项目的方法:
一:
将项目所支持的所有类库打在一个包中,而不是只将项目编译打包到一个jar中。这样便可以直接拷贝一个jar去执行了。
<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.ebay.montage.eventprocessor.collector.CodeRollOutEventDataCollector</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>assembly</goal> </goals> </execution> </executions> </plugin>
使用命令:
mvn assembly:assembly -DskipTests
这里就会在target目录下生成*.jar文件,
直接运行jar文件: Java -jar *.jar
备注:当然也可以使用mvn clean install -DskipTests 来构建生成jar包。
二:
注意绿色部分,自行定义内容。
在 maven 工程中,我们也可以很方便的打包成可执行的 jar 包。默认Maven生成的JAR包只包含了编译生成的.class文件和项目资源文件,而要得到一个可以直接在命令行通过java命令运行的JAR文件,还要满足两个条件:
- JAR包中的/META-INF/MANIFEST.MF元数据文件必须包含Main-Class信息。
- 项目所有的依赖都必须在Classpath中,其可以通过 MANIFEST.MF 指定或者隐式设置。
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.ebay.montage.eventprocessor.collector.MySpace</mainClass> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> <finalName>eventprocessor</finalName> <!-- <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> </excludes> --> </configuration> </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> </plugins>
使用mvn clean install -DskipTests打jar 包。
这样打好jar包后就可以使用:java -jar eventprocessor.jar Myspace,
当然了前提是在Myspace中有一个main方法。这样便可直接去执行Myspace中的main方法了。
但是如果要将jar包放到别的机器上去运行的话,需要将targe中的lib下的内容(上面命令中指定)也同样拷贝过去,因为默认情况下:maven只是将项目编译打包到一个jar中,而其它的类库在上面手动的指定被放到了lib中,所以在执行的时候必须要引用才行。
原文:java中的Maven项目的两种打包方法
阅读全文
0 0
- java中的Maven项目的两种打包方法
- java中的Maven项目的两种打包方法
- java中的Maven项目的打包成jar或者war
- iOS 项目打包成.ipa文件的两种方法
- mvn打包项目时跳过测试的两种方法
- maven的两种打包方式
- maven的两种打包方式
- maven的两种打包方式
- 两种方法重命名maven项目的版本号
- 使用MyEclipse 2014构建Maven项目的两种方法
- MyEclipse导入maven项目的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- java通过上下文遍历bean
- SQL SERVER 作业浅析
- 超实数系*R能否安置在几何直线上?
- React Native在Windows下环境搭建
- Activity生命周期详解
- java中的Maven项目的两种打包方法
- 区间range库
- [整理]扩展欧拉定理证明
- webpack3实战(1)打包一个CDN引入的jQuery项目
- go语言学习-并发编程
- 给定一个二叉树,返回所有重复的子树。对于每种重复的子树,只需要返回其中任何一个的根节点。
- 贪吃蛇
- ROS 深度相机 奥比中光
- 甲子光年 | 为什么知识图谱终于火了?