maven 打包可执行jar的方法
来源:互联网 发布:hfss微带线端口 编辑:程序博客网 时间:2024/06/10 06:27
在这之前,我自己找了点maven的东西添加进来
Maven内置变量说明:${basedir} 项目根目录${project.build.directory} 构建目录,缺省为target${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}${project.packaging} 打包类型,缺省为jar${project.xxx} 当前pom文件的任意节点的内容
方式1
修改pom.xml增加如下内容
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.sysware.HelloWorld</mainClass></manifest></archive></configuration></plugin>
运行mvn clean package即可
批注:
经过我本人自测之后发现,这种方式虽然可以打包,但是不会将依赖包也添加进去。所以我认为这种方式的打包适合写一个工具,然后打成JAR包,导入其他工程使用,如果是一个单独运行的JAR包,则不适用。
方式2
在pom.xml增加如下内容
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.3</version><configuration><appendAssemblyId>false</appendAssemblyId><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>assembly</goal></goals></execution></executions></plugin>
运行mvn assembly:assembly ( 我自己使用mvn clean package也是可以的) 批注:
这个方式和方式1不同,这种打包方式,将项目及所依赖的所有jar包打包成一个jar,让打出来的JAR包成为一个可独立运行的JAR包
方式3
批注:
我自己在博主的基础上,添加了一些配置和注释
方式3和方式4都是比较复杂的打包方式,但是可以自己定义细节,比如需要哪些文件被打包,哪些文件不打包进去,哪些文件放到哪里等等。
<build><finalName>test-${project.version}</finalName><sourceDirectory>src/main/java</sourceDirectory><resources><!-- 控制资源文件的拷贝 --><resource><directory>src/main/resources</directory><targetPath>${project.build.directory}</targetPath><!-- excludes和includes二选一使用即可 --><!-- 不包含的文件,支持通配符 --><excludes><exclude>*.txt</exclude></excludes><!-- 包含的文件,支持通配符 --><includes><include>*.properties</include></includes></resource></resources><plugins><!-- 设置源文件编码方式 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><defaultLibBundleDir>lib</defaultLibBundleDir><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin><!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.eya.main.Hello</mainClass></manifest></archive></configuration></plugin><!-- 拷贝依赖的jar包到lib目录 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin><!-- 解决资源文件的编码问题 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.4</version><configuration><encoding>UTF-8</encoding></configuration></plugin><!-- 打包source文件为jar文件(源码,可选) --><plugin><artifactId>maven-source-plugin</artifactId><version>2.1</version><configuration><attach>true</attach><encoding>UTF-8</encoding></configuration><executions><execution><phase>compile</phase><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build>
方式4
<build><resources><resource><targetPath>${project.build.directory}/classes</targetPath><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/*.xml</include></includes></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.0</version><configuration><source>1.6</source><target>1.6</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.test.testguava.app.App</mainClass></transformer><transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>applicationContext.xml</resource></transformer></transformers><shadedArtifactAttached>true</shadedArtifactAttached><shadedClassifierName>executable</shadedClassifierName></configuration></execution></executions></plugin></plugins></build>
原文地址:http://blog.csdn.net/johnnywww/article/details/7964326
阅读全文
0 0
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- Maven打包可执行Jar的集中方法
- maven打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法
- maven 打包可执行jar的方法 maven-jar-plugin
- maven 打包可执行的jar
- Maven打包可执行Jar的几种方法
- Maven打包可执行Jar的几种方法
- Maven打包可执行Jar的几种方法
- Android framework 应用安装流程 分析 PackageManagerService(Android5.1)
- [POJ3262]Protecting the Flowers
- nginx File not found 错误
- EXAM 7.13
- MySQL中高级知识-锁
- maven 打包可执行jar的方法
- static
- 514 - Rails
- linux下安装python3
- U-boot目录结构学习笔记
- C#(3)-------excel上传到数据库
- /etc/hosts文件修改后如何生效
- BZOJ 3251: 树上三角形 斐波那契数列 脑洞
- java数组转List