制作一个可执行的jar包(非springboot,普通maven项目)

扣扣技术分享交流群:1125844267

其实,制作一个可执行的jar包主要就是pom的一些配置,之后打包执行都跟springboot类似

我们首先创建一个普通的maven项目,接下来看一下pom的配置

<build>
    <!-- 最终达成jar包的名字,最好还是配置一下,简单明了,否则默认的有点儿长 -->
    <finalName>copy-product</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId> <!-- 设置为false后打包不带后缀(jar-with-dependencies)-->
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <!-- 此处指定main方法入口的class,这个很重要,jar包启动之后就会执行这个main方法,从而实现我们的需    求 -->
                        <mainClass>cn.guide.xd.ProductMain</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
</build>

至于其它依赖jar包,根据自己需求自行引入即可,然后用maven达成jar包,执行命令java -jar jar包名称 参数1 参数2 参数3。。。参数要具体看main方法中的需要。

我们都知道main方法的参数是数组,public static void main(String[] args) ,我们可以根据jar包启动时的传参来依次取数组args中的参数使用

追加:

之前是没有集成spring,没有配置数据源。后来根据业务需求,集成spring后,idea启动操作都没有问题,但是在打成jar包后启动报错,纠结很长时间,最后查到是因为maven-assembly-plugin这个插件有bug,对于jar包中的冲突文件会覆盖,而不是追加。我们需要替换成另外一种maven插件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <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>
                    <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>cn.guide.xd.ProductMain</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

对于每个<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer>中的<resource>内容是可以根据自己的报错情况自行修改的

个人建的交流群1125844267,欢迎大家加入!

如果内容对大家有所帮助,感谢鼓励!实现我小时候一人给我一块钱的美梦,哈哈!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Happy-Sir

有收获请打赏,哈哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值