不依赖任何外界包,maven如何生成可以执行的jar?
pom中不包含任何引用的情况下,只需要在pom中添加
maven-jar-plugin
即可。
解决过程
新建项目,仅包含一个main函数类:Xixi.java,输出
Xixi Say: hello
pom中配置为
<groupId>com.paxi</groupId>
<artifactId>xixi</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>xixi</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
执行
mvn clean install
生成jar包
xixi-1.0-SNAPSHOT.jar
,执行jar命令,执行反馈出错
⇒ java -jar xixi-1.0-SNAPSHOT.jar
xixi-1.0-SNAPSHOT.jar中没有主清单属性
对jar进行解压缩
jar xvf xixi-1.0-SNAPSHOT.jar
查看对应文件MANIFEST.MF
⇒ cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: paxi
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_121
在pom中添加插件
maven-jar-plugin
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.paxi.Xixi</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
执行成功输出
⇒ java -jar xixi-1.0-SNAPSHOT.jar
Xixi Say: hello
再对解压缩后的MANIFEST.MF文件查看为
⇒ cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Built-By: paxi
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_121
Main-Class: com.paxi.Xixi //新增
在pom中添加依赖,maven如何生成可执行jar?
需要使用插件
maven-dependency-plugin
和
maven-jar-plugin
。