命令行:mvn clean package
clean:清理target目录
package:打包,打包之前包括编译、运行等
Maven默认的打包方式不带main函数,具体可见生成的jar包中META-INF下的MANIFEST.MF文件
不带的:original-xxx.jar
Manifest-Version: 1.0
Built-By: Administrator
Build-Jdk: 1.7.0_71
Created-By: Apache Maven 3.3.9
Archiver-Version: Plexus Archiver
带的:xxx.jar
Manifest-Version: 1.0
Build-Jdk: 1.7.0_71
Built-By: Administrator
Created-By: Apache Maven 3.3.9
Main-Class: com.juvenxu.mvnbook.helloworld.HelloWorld
Archiver-Version: Plexus Archiver
多了一句:Main-Class: com.juvenxu.mvnbook.helloworld.HelloWorld
如果想给打包带main的jar包,则需在pom.xml中加入以下配置(build标签中的内容)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.juvenxu.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
可以输入命令行:java -jar target\hello-world-1.0-SNAPSHOT.jar,进行测试