maven项目打成可运行的jar及pom中的依赖一同打包

maven项目打jar及pom中的依赖一同打包

最近开发中有个需求,不部署新的服务,只jar包执行

那maven项目中,代码如何以jar的方式运行、如何把代码打成jar、pom中的依赖如何与代码一同打到jar包中?

1、代码如何以jar的方式运行?

pom文件中,需要增加配置

<packaging>jar<packaging>

这种方式用于创建一个可执行的jar,适用于java项目

packaging的其它几种值及含义,请自行百度!

2、如何把代码打成jar?

写好代码后,执行maven clean、maven package命令,就可以把代码打成jar,生成的jar文件在项目目录下 target文件夹下

然后,执行clean package命令,打成jar后,内心一阵狂喜,终于搞定了,然后赶紧让运维在测试服务器上运行,,然而,出错了,,

错误一:no main manifest attribute, in xxx.jar

jar包中缺少一个main方法,运行jar时找不到程序的执行入口,但main方法有的

难道得指定main方法所在的类吗,执行java -cp newfuel-transmit-delete-lindorm-1.0-SNAPSHOT.jar org.navinfo.newfuel.DeleteLindormApplication命令

也是报错。。。

错误二:java.lang.ClassNotFoundException:xxx.xxx.xxx

我看了下代码,是引用的依赖包找不到,,此时jar包大小17KB

接下来要解决的就是,如何把需要的依赖一同打入jar中

3、pom中的依赖如何与代码一同打到jar包中?

pom文件中,增加如下配置

   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.14</version>
        <relativePath/>
    </parent>



     <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>2.5.14</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
    </build>

然后,再次执行clean package命令,打成jar后,再运行,成功了,此时jar包大小43MB

注意:

运行jar包时如果出现乱码,需要设置字符编码

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
相关推荐
莫名其妙小饼干11 小时前
网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
java·开发语言·maven·mssql
.生产的驴14 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
music0ant1 天前
Idean 处理一个项目引用另外一个项目jar 但jar版本低的问题
java·pycharm·jar
全栈老实人_2 天前
时间管理系统|Java|SSM|JSP|
java·开发语言·tomcat·maven
Zhu_S W2 天前
SpringBoot项目的创建方式(五种)
java·spring boot·后端·maven·idea
骑个小蜗牛2 天前
Maven 生命周期
maven
蜜獾云2 天前
maven-resources-production:ratel-fast: java.lang.IndexOutOfBoundsException
java·maven·intellij-idea
xiao_fwuu2 天前
IDEA 打开 maven 的 settings.xml 文件
xml·maven·intellij-idea
莫名其妙小饼干2 天前
时间管理系统|Java|SSM|JSP|
java·开发语言·maven·mssql
ℳ₯㎕ddzོꦿ࿐2 天前
在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动
linux·运维·jar