IDEA有自带的打包方式,但maven项目有更简单的打包方式,并且可以把依赖包一起打成一个包。
转载地址:https://blog.csdn.net/maozexijr/article/details/79364129
-------------------------------------------------------------------------------------------------
本方法中共包括一般程序打包和springboot程序打包两种。
一般程序打包:
方法1:
1、我是在pom.xml中加入一个插件来打包,如下:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.company.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、在IDEA右侧的maven projects窗口,双击package,就可以自动打包啦。
3、打包后生成目录如下:
见名知意,其中 spark-1.0.jar 只有代码,无依赖,而 spark-1.0-jar-with-dependencies.jar则包含所有jar包
方法2:
参考:https://blog.csdn.net/defonds/article/details/43233131
pom文件如下:
<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>
</excludes>
</filter>
</filters>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.defonds.RsaEncryptor</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>
SpringBoot打包:
遇到Spring项目,不是从Application默认启动的,想要指定启动方法时增加<mainClass>配置
pom文件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--指定main方法-->
<mainClass>com.unicomdb.batchTest.mainBatch4SerTest</mainClass>
<fork>true</fork>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
好了,结束。
-------------------------------------------------------------------------------------------------------------------------
太难了,整了老半天,希望以后可以少走弯路!