所用开发工具为idea
项目结构如图
1.先写一个测试的类HelloWorld
package com.jiuru.kevin.hello;
/**
* Created by Kevin on 2014/9/25.
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("helloWorld");
System.out.println("just test mvn command!!!");
}
}
2.然后直接在该项目所在目录,即TestCommand文件夹内打开cmd,输入mvn clean清理一下target,然后mvn package打包,运行结束后可以再target文件夹下找到对应的jar包
3.输入java -jar XX.jar 发现提示错误,并不能得到输出的语句,打开jar包发现里面的MF文件里面没有main-class的相关语句
4.因为缺少maven-shade-plugin,所以不能自动给生成对应的语句,这时候我们需要引入一下maven-shade-plugin,配置一下pom.xml
<?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>MvnCommandTest</groupId>
<artifactId>TestCommand</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<!-- put your configurations here -->
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.jiuru.kevin.hello.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
以上build里面的内容即为配置文件中所需添加的内容,注意修改一下mainClass与你自己写的类对应上
5.我用的idea开发工具,如果配置文件写后,会自动给我导包,直接不用平台可能需要通过mvn install先加载一下maven-shade-plugin插件包,这时候再mvn clean package打成的jar包运行可以正常输出了。