要点:

1.父模块packaging为<packaging>pom</packaging>,其他子模块全部是<packaging>jar</packaging>

父模块和其他非启动项模块的pom都不需要添加maven-plugin插件

2.启动项(就是你SpringBoot项目有启动类的那个模块:xxxApplication)的模块需要添加maven-plugin插件

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

3.如果项目中有手动添加的jar包, 如lib中的本地jar,还需要添加一行配置,否则打好的jar包中是没有的。

项目引入本地jar:

<!-- 以阿里的钉钉机器人依赖为例 这个jar是保存在子模块的lib下 -->
<dependency>
    <groupId>alitool</groupId>
    <artifactId>dingtalk</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/dingtalk-sdk/taobao-sdk-java-auto_1479188381469-20191128.jar</systemPath>
</dependency>

添加配置:在上面启动项模块的基础上再添加<configuration>里的配置,这样就会把本地引入的jar也打包进去。

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

4.使用Idea的maven对父模块(也就是packaging为pom的模块)依次进行clean、package

5.以上操作完成且控制台无异常表明本次打包完成.打好的jar包在启动项模块的target下。

6.可以在idea中启动运行成功

 

 7.也可以在控制台输入:java -jar XXX.jar 来启动jar包,control + c 关闭程序。

当前窗口后台运行:java -jar XXX.jar &,可在运行的同时执行其他命令,关闭窗口会随即关闭程序。

后台运行:nohup java -jar XXX.jar &,程序日志会输出到当前目录下的nohup.out文件。

               nohup java -jar XXX.jar > temp.out &,程序日志会输出到temp.out文件中。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐