1、打开Project Structure(Ctrl+Alt+Shift+S)然后选择左边的Artifacts,再点上方的“+”号,来新建一个Artifact(按照Maven的说法,所有生成的东西都可以叫作Artifact,当然也包括Jar)
2、Main Class中选择需要被执行的包含main函数的类路径。
JAR files from libraries选择extract to the target JAR,否则打出的第三方jar包会游离出来。
Directory for META-INF/MANIFEST.MF选择resources路径,否则运行jar包时会抛no main manifest attribute,in xxx.jar。
3、一路点击OK
4、点击菜单栏上的Build,然后选择Build Artifacts,就会弹出一个框
5、点击Build后,会在项目中生成需要的jar包
##maven项目打出jar包,并且包含pom.xml引入的第三方依赖,只用于其它项目调用,无需main函数:
// pom.xml中使用下面的maven-shade-plugin插件,<excludes>中去除SF等和测试相关的依赖,然后使用maven的package命令自动打包即可
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</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>
<!--去除测试相关的依赖,根据具体情况修改-->
<exclude>junit/**</exclude>
<exclude>org/junit/**</exclude>
<exclude>org/hamcrest/**</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
// 注意,如果不去除SF\DSA\RSA等文件,调用方会抛异常:Invalid signature file digest for Manifest main attributes