1、导入pom.xml
<build>
<finalName>ReadDataToSave-1.0.0</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<mainClass>com.gl.SaveDataMain</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
</plugins>
</build>
2、说明
(1)<finalName>ReadDataToSave-1.0.0</finalName>为所打jar名字:
(2)<appendAssemblyId>false</appendAssemblyId>表明所打jar包不带jar-with-dependencies后缀,
所打包效果为:
改为true或者去掉此此行,打包效果为:
虽然生成俩个jar包,但只有ReadDataToSave-1.0.0-jar-with-dependencies.jar可以运行,ReadDataToSave-1.0.0.jar则不能运行,出现下面运行错误:
(3)所打jar包不但包含了自己项目中的代码和资源,还包含了所有依赖包的内容。所以可以直接通过java -jar来运行。
3、注意
最好按如下步骤打jar包:
先clean再assembly
4、所遇到的坑
坑一:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project WriteTxt: Compilation failure: Compilation failure:
[ERROR] /C:/MyselfApplication/MyProject/IDEA/WhiteListModel/ReadDataToSave/src/main/java/com/gl/service/DbOperate.java:[16,46] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /C:/MyselfApplication/MyProject/IDEA/WhiteListModel/ReadDataToSave/src/main/java/com/gl/util/DateUtil.java:[15,52] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] -> [Help 1]
解决办法:
pom.xml加上如下配置提升source版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
坑二:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.6:resources (default-resources) on project WriteTxt: Cannot create resource output directory: C:\MyselfApplication\MyProject\IDEA\WhiteListModel\ReadDataToSave\target\classes -> [Help 1]
问题分析:
这个原因在于,我先执行clean时将target目录删了,但是这个目录被xshell占用着,故再assembly就会报这样的错误!
解决办法:
解除此文件夹的占用即可!