springboot Maven打包

Posted by hcy on February 19, 2020

今天使用maven命令打包springboot项目成可执行jar,总是无法成功。表现为打包的jar包只有项目本身的Class,不包含依赖。

但是把项目文件复制到其他目录就能正常使用。后来发现原因是这这样。

项目是一个多Module项目,父pom中这样写的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <build>
        <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <version>2.1.8.RELEASE</version>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>repackage</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
        </pluginManagement>
    </build>

我做的子Module是这样写的。

1
2
3
4
5
6
7
8
9
10
11
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

这样问题就产生了,子项目是继承父pom的,这样子项目没有写版本号,但是我没注意看到父pom有一个

<skip>true</skip>,这个选项的意思是忽略execution,这样插件就不会执行。

被坑了,弄了好久才注意到父pom这个选项。

打包命令,顺便跳过测试

1
mvn clean package -Dmaven.test.skip=true

转载请注明出处:https://www.huangchaoyu.com/2020/02/19/springboot-Maven打包/