springboot~mvn多个关联项目打包问题

使用maven进行构建项目时,有时会把公共对象和方法抽象在一个common公用项目里,而其它项目直接依赖它即可,而在common项目配置需要注意一下,因为springboot生成的jar默认是可执行的jar包,所以在其它子项目编译时,会因为引用common失败而导致当前项目不能成功编译,而只能去根项目进行mvn install来可以,这事实上很麻烦,所以今天主要解决一下这个问题。

编译出现的错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project projectA: Compilation failure

解决方案

如果你的common里的main入口方法时

在common项目的pom.xml里添加如下配置 

     <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--供其它项目依赖的,不可执行的Jar包中 -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

如果你的common里没有main方法,只是一些类库时

可以把plugin删除掉,然后在common里不要引用过类的包,应该在业务项目里引用这些包,否则会有包找不到情况

再进行编译,问题解决!

原文地址:https://www.cnblogs.com/lori/p/12612069.html