美文网首页SpringBoot
springboot工程maven打包时,如果有依赖工程总是报找

springboot工程maven打包时,如果有依赖工程总是报找

作者: 匆匆岁月 | 来源:发表于2019-11-19 10:50 被阅读0次

    最近公司使用springboot开发项目,使用的构建工具是maven,项目分了很多模块,并且模块之间还存在一定的依赖,比如说一个项目common是提供各项目通用的工具类,公共的类等

    当对工程执行:mvn clean package 就会包依赖 pyyadmin-common-xxxx.jar 和 pyyadmin-common-model.xxxx.jar 找不到

    而此时你可能会去将 pyyadmin-commonpyyadmin-common-model 执行 mvn clean package,此时会报如下错误:

    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  2.208 s
    [INFO] Finished at: 2019-11-19T10:45:57+08:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.7.RELEASE:repackage (repackage) on project pyyadmin-common: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.1.7.RELEASE:repackage failed: Unable to find main class -> [Help 1]
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
    

    注意!注意!这里有一个巨坑,我已经义无反顾的跳进去一次了,大家一定不要再往里面跳了:common打包出来的应该是不可执行的jar包,所以不要在Common的pom中定义spring-boot-maven-plugin插件,因为这个SpringBoot插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,如果common中定义了这个插件,会报错提示没有找到main函数。

    问题就出现在这里:切记,普通模块工程中一定要记得去掉下面 maven编译插件

    <build>
            <plugins>
                <!-- maven 编译插件 -->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    相关文章

      网友评论

        本文标题:springboot工程maven打包时,如果有依赖工程总是报找

        本文链接:https://www.haomeiwen.com/subject/flkwictx.html