当前位置:  开发笔记 > 编程语言 > 正文

弹簧启动与maven多模块项目

如何解决《弹簧启动与maven多模块项目》经验,为你挑选了1个好方法。

我有一个maven多模块项目,设计类似于以下SO帖子中的第一个答案: 带有Spring Boot的多模块maven

现在我想要一个通用的maven模块,它可以包含一些模型供多个微服务使用.如果我将这个常见项目作为第一级父pom的子项(这样所有依赖项通过引导注入,如jpa,jackson等可用于公共),那么STS/Spring将其检测为启动应用程序并抱怨没有Main关于maven构建的课程.

有人可以建议我如何实现这一目标吗?

现行代码:

parent pom.xml :(仅包含相关部分)


...
...
...
pom
...

    org.springframework.cloud
    spring-cloud-starter-parent
    Brixton.M3
    


    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    
    
        org.springframework.boot
        spring-boot-starter-jetty
    


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                
                    
                        repackage
                    
                
            
        
    


子(公共模块)pom.xml(只有相关部分),不是启动应用程序:


...
...
...


    ...
    ...
    ...



Stephane Nic.. 7

我没有关于你的项目的所有细节,但我最好的猜测是spring-boot-maven-plugin在父项上定义(或者你spring-boot-starter-parent在根pom中使用).这有效地要求构建将您的模块打包为Spring Boot应用程序(这不是您想要的).

STS可能会查找该提示,以确定模块是否包含Spring Boot应用程序.如果它寻找一个用@EnableAutoConfiguration(或SpringBootApplication)注释的主类,也许会更好.

您可以通过指定重新打包目标的skip属性轻松地(从构建方)修复问题

  
    org.springframework.boot
    spring-boot-maven-plugin
    
          true
    
  

如果STS仍然将模块作为Spring Boot应用程序选中,我会在他们的跟踪器中创建一个问题



1> Stephane Nic..:

我没有关于你的项目的所有细节,但我最好的猜测是spring-boot-maven-plugin在父项上定义(或者你spring-boot-starter-parent在根pom中使用).这有效地要求构建将您的模块打包为Spring Boot应用程序(这不是您想要的).

STS可能会查找该提示,以确定模块是否包含Spring Boot应用程序.如果它寻找一个用@EnableAutoConfiguration(或SpringBootApplication)注释的主类,也许会更好.

您可以通过指定重新打包目标的skip属性轻松地(从构建方)修复问题

  
    org.springframework.boot
    spring-boot-maven-plugin
    
          true
    
  

如果STS仍然将模块作为Spring Boot应用程序选中,我会在他们的跟踪器中创建一个问题


谢谢您的帮助。我按照您的建议尝试了,但现在确实有用。在子pom中添加了以下部分:`<build> <plugins> <plugin> <groupId> org.springframework.boot </ groupId> <artifactId> spring-boot-maven-plugin </ artifactId> <executions> <execution> <目标> <goal>重新打包</ goal> </ goals> <configuration> <skip> true </ skip> </ configuration> </ execution> </ executions> </ plugin> </ plugins> </ build>`但是这减少了我的构建时间,因为通用模块没有重新打包为可执行jar
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有