直接mvn package,打包后,运行jar包
在cmd窗口运行:java -jar test-1.0-SNAPSHOT.jar
显示test-1.0-SNAPSHOT.jar中没有主清单属性
解决方法
使用maven-jar-plugin:用于生成META-INF/MANIFEST.MF文件的部分内容,com.xx.Main指定MANIFEST.MF中的Main-Class,true会在MANIFEST.MF加上Class-Path项并配置依赖包,lib/指定依赖包所在目录。
和maven-dependency-plugin:用于将依赖包拷贝到${project.build.directory}/lib指定的位置,即lib目录下。
新增maven-jar-plugin和maven-dependency-plugin插件
在pom.xml中配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<!-- 添加Class-Path配置项-->
<addClasspath>true</addClasspath>
<!-- 指定依赖包位置 -->
<classpathPrefix>lib/</classpathPrefix>
<!--指定Main-Class,修改成jar包的主函数入口 -->
<mainClass>Hello</mainClass>
</manifest>
</archive>
</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>
<!-- 将依赖的jar包,copy到 /lib 目录下 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
重新使用maven命令:mvn clean
mvm package
再次在cmd里运行:java -jar test-1.0-SNAPSHOT.jar,成功
还有其它解决方式