前言

最近想把eclispe中的java项目做成可运行的jar文件,这样就可以像用软件一样点击直接使用了。不过,pom.xml要注意的细节很多,自己对Maven也不是很懂,实现这个想法遇到几个坑,还好最后所有坑都跳过去了,记录一下以免以后自己再次跳坑。

本文重点

  • pom.xml的配置注意点
  • 在控制台生成可运行jar文件,以及调试的注意点

pom.xml的配置方法注意点

1.properties的配置:

我首先遇到问题就是如图

maven 导出可执行jar 导出maven工程为可执行jar包_Maven


出现这个问题原因就在于在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.包不存在:

maven 导出可执行jar 导出maven工程为可执行jar包_Java_02


这里说明有需要的依赖包你需要配置在pom.xml文件中,直接搜索他给的包名加在pom.xml就行。2.包有问题:

maven 导出可执行jar 导出maven工程为可执行jar包_Java_03


产生问题的原因暂时不清楚,但是处理方法倒是很简单粗暴,把图片中第二行“读取…”到“…时出错”中间的路径复制一下,删除那个.jar文件。不用担心会出问题,因为当你再次用上面的流程建立.jar文件的中途,这个.jar会被再次下载生成。一般删除一次就会解决问题,如果再次出现同样的问题可以再删一次试一下,如果还是不行,那我也不知道为啥了….

ps:整个流程建议都在控制台完成,尤其最后一步,不要说生成了.jar文件了,就觉得大功告成了,其实是十分Naive的行为,可能还有很多问题需要解决。一旦发现点击.jar文件没有反应,马上用java -jar 你的.jar后缀文件名这个命令试一下看看是什么问题。