
原因是eclipse默认在JRE运行,maven打包需要JDK编译器
1、点击eclipse的Window-Preferences
2、在Preferences窗口中点击Java-Installed JREs-Add来添加所需要的JDK

3、点击Directory
找到本机的JDK根目录并选择添加


4、依旧打开eclipse的Window-Preferences-Java-Installed JREs-Execution Environments-JavaSE-1.8(根据自己的需求来选择,小弟我修改了1.7和1.8),选择jdk打勾, 最后应用并退出
5、Maven打包成功
中途小弟修改完上面的配置打包依然有几处错误
其实图中报错并不是重点,检查后发现每次右击项目-Maven-Update Project后,JRE System Library总会修改为默认的J2SE-1.5,如图:(可按照小弟Maven打包的pom文件配置来解决,在下面)
然后打包的时候还出现过:编码GBK的不可映射字符,原因是Maven打包默认按照GBK编码来打包,而我的代码是utf-8的编码格式,所以需要在pom文件中配置编码格式来修改为utf8。(一定要注意代码的编码格式,小弟因为把项目的编码从GBK设置为utf-8导致代码中有很多中文乱码,打包一直报:编码UTF8的不可映射字符)(可按照小弟Maven打包的pom文件配置来解决)
小弟的maven打包pom文件配置如下,请大家参考:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<!-- 是否要把第三方jar放到manifest的classpath中-->
<addClasspath>true</addClasspath>
<!-- 生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/-->
<classpathPrefix>lib/</classpathPrefix>
<!--应用的main class,例如com.csdn.maven.mainclass-->
<mainClass>com.*.*</mainClass>
</manifest>
</archive>
<!-- 过滤掉不希望包含在jar中的文件-->
<excludes>
<exclude>${project.basedir}/xml/*</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</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-compiler-plugin</artifactId>
<version>3.6.2</version>
<configuration>
<!--配置jdk版本,对应上述问题:Update Project后修改为默认的J2SE-1.5-->
<source>1.8</source>
<target>1.8</target>
<!--配置Maven打包的编码格式为utf8,对应上面的问题:编码GBK的不可映射字符-->
<encoding>utf8</encoding>
</configuration>
</plugin>
</plugins>
</build>
至此,困扰小弟很久的maven打包问题终于解决了,希望帮到大家
版权声明:本文为qq_39141063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。