如何给maven项目打可执行jar包

时间:2022-05-24 18:33:56

项目中可能有这样的需求 一个空能需要将历史数据导入新的存储容器(这只是场景的其中之一) 处理这样的业务场景 有两种方法

第一:可以做一个按钮 点击触发业务逻辑(查表 将结果集拿来循环处理 导入我们期望的容器中)

第二:可以单纯的写一个小项目 只有service层 dao层 然后写个main方法触发调用 之后就将这个项目打成可执行jar包 扔到服务器执行

这里介绍第二种方式。以下主要内容为转载    博主地址:http://blog.csdn.net/defonds/article/details/43233131 -----支持原创从我做起。


maven-shade-plugin插件(其余插件要么不支持spring 要么有小bug)

在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><!-- main方法所在类 -->
</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>

这种方式打包 会把项目配置文件,maven依赖包都打到jar包中 执行的时候直接 java -jar XXXX.jar