POM配置
<properties>
<maven.encoding>UTF-8</maven.encoding>
<maven.plugin.compiler.version>3.1</maven.plugin.compiler.version>
<maven.plugin2.5.version>2.5</maven.plugin2.5.version>
<java.version>1.7</java.version>
</properties>
<build>
<finalName>jar包名称</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin2.5.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- <version>${maven.plugin.compiler.version}</version> -->
<version>${maven.plugin2.5.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${maven.encoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven.plugin2.5.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.plugin2.5.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin2.5.version}</version>
<configuration>
<encoding>${maven.encoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>main函数类全路径</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
运行jar包命令
方式一:一般运行包含manifest的jar包,可以使用
java -jar <jar-file-name>.jar
方式二:如果jar里没有 manifest,则可以使用
java -cp foo.jar full.package.name.ClassName
方式三:当main类依赖多个jar时,可以把多个jar打包到一个目录,然后用-Djava.ext.dirs指定该目录,引用依赖的多个jar。
java -Djava.ext.dirs=<多个jar包的目录> com.test.HelloWordMain
如果用-cp则需要写每一个jar,很麻烦。