前言
最近想把eclispe中的java项目做成可运行的jar文件,这样就可以像用软件一样点击直接使用了。不过,pom.xml要注意的细节很多,自己对Maven也不是很懂,实现这个想法遇到几个坑,还好最后所有坑都跳过去了,记录一下以免以后自己再次跳坑。
本文重点
- pom.xml的配置注意点
- 在控制台生成可运行jar文件,以及调试的注意点
pom.xml的配置方法注意点
1.properties的配置:
我首先遇到问题就是如图
出现这个问题原因就在于在properties的位置没有加入你jdk版本,像下面这样修改你的properties没有问题了。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>(你系统的jdk版本)</maven.compiler.source>
<maven.compiler.target>(你系统的jdk版本)</maven.compiler.target>
</properties>
2.maven-shade-plugin的配置
通过Maven将项目导出成jar文件最关键是使用maven-shade-plugin这一插件,以下是我对这一插件的配置内容,测试多个项目都没有问题。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.peerich.data.KitacoDataManager(把这段替换成你的主类名)</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Maven建立可运行的.jar文件
整个操作流程
1. 通过cmd控制台进入项目的根目录
2. 输入mvn install命令
3. 进入项目的target文件夹
4. 输入java -jar 你的.jar后缀文件名
遇到的问题:
1.包不存在:
这里说明有需要的依赖包你需要配置在pom.xml文件中,直接搜索他给的包名加在pom.xml就行。
2.包有问题:
产生问题的原因暂时不清楚,但是处理方法倒是很简单粗暴,把图片中第二行“读取…”到“…时出错”中间的路径复制一下,删除那个.jar文件。不用担心会出问题,因为当你再次用上面的流程建立.jar文件的中途,这个.jar会被再次下载生成。一般删除一次就会解决问题,如果再次出现同样的问题可以再删一次试一下,如果还是不行,那我也不知道为啥了….
ps:整个流程建议都在控制台完成,尤其最后一步,不要说生成了.jar文件了,就觉得大功告成了,其实是十分Naive的行为,可能还有很多问题需要解决。一旦发现点击.jar文件没有反应,马上用java -jar 你的.jar后缀文件名这个命令试一下看看是什么问题。