springboot对Maven项目打可执行jar包

首先需要明确的是,该项目打包的形态是可执行的jar包,还是在tomcat下运行的war包。

springboot自带的maven打包

如果是jar包
需在pom.xml指定打成的包为:

<packaging>jar</packaging>

如果是war包。
需在pom.xml指定打成的包为:

<packaging>war</packaging>

并通过标签在打包的时候排除tomcat依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

添加插件

<build>
     <defaultGoal>compile</defaultGoal>
     <sourceDirectory>src</sourceDirectory>
     <finalName>springboot-package</finalName>
     <plugins>
         <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin </artifactId>
             <configuration>
                 <fork>true</fork>
                 <mainClass>com.pancm.App</mainClass>
             </configuration>
             <executions>
                 <execution>
                     <goals>
                         <goal>repackage</goal>
                     </goals>
                 </execution>
             </executions>
         </plugin>
     </plugins>
 </build>
注:<finalName>标签是指定打包之后的名称,<mainClass>是指定main函数。

使用maven的assembly插件进行打包

也可以不用SpringBoot自带的打包方式,使用maven的assembly插件进行打包。

<build>
 <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>  
         <artifactId>maven-assembly-plugin</artifactId>  
         <version>2.5.5</version>  
         <configuration>
             <archive>  
                 <manifest>  
                     <mainClass>com.pancm.App</mainClass>  
                 </manifest>  
             </archive>  
             <descriptorRefs>  
                 <descriptorRef>jar-with-dependencies</descriptorRef>  
             </descriptorRefs>  
         </configuration>  
     </plugin> 
    </plugins>
 </build>

在pom.xml中添加完相应的标签之后,我们只需在项目同级(pom.xml同级)输入

mvn clean package

即可完成打包
如果想排除测试代码,则可以输入:

mvn clean package  -Dmaven.test.skip=true

来进行打包。

一般我们是把application.properties和logback.xml文件放在resources文件夹中,但是进行打包之后,它们也会包含在jar或war包中,如果我们想更改配置,则会比较麻烦。
如果想将它们和项目放在同级目录下,application.properties可以直接移出和项目同级的目录下,因为Spring程序会按优先级从下面这些路径来加载application.properties配置文件:

  • 当前目录下的/config目录
  • 当前目录
  • classpath里的/config目录
  • classpath 根目录

springboot默认加载的logback是在classpath目录下,这时我们只需要在application.properties配置文件指定logback.xml的路径即可。
添加如下:

logging.config=logback.xml

对第三方jar包手动编译到本地仓库,然后pom中添加对应的名称和版本号

如果引入了第三方的jar包,但是又无法通过maven私服进行下载,这时可以手动进行编译。
例如,我写了一个工具类为Mytools,然后把它打成了一个jar包,然后放在我的这个项目中lib目录下,并且需要引用它,那么此时便可以对该jar包进行编译到本地仓库中,然后再pom.xml添加相应的名称和版本号。
命令示例:

mvn install:install-file -Dfile=lib/pancmtools.jar -DgroupId=com.panncm.utils -DartifactId=pancm-utils -Dversion=1.0 -Dpackaging=jar

pom.xml添加

<dependency>
            <groupId>com.panncm.utils</groupId>
            <artifactId>pancm-utils</artifactId>
            <version>1.0</version>
</dependency>

参考文章
https://www.imooc.com/article/76507

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值