当前位置: 首页 > 知识库问答 >
问题:

运行mvn spring-boot:从父模块运行?

公羊涛
2023-03-14

我有这样一个多模块maven项目:

my-parent
--my-domain
--my-service
--my-app<<<这是一个Spring Boot模块

我想直接从父模块运行mvn spring-boot:run命令,而不必先cd到'my-app'目录中。

我认为这与spring-boot-maven-plugin的配置有关,但我似乎不能正确处理它。

我尝试了以下方法:

>

  • 使用spring-boot-starter-parent以及在my-app的plugins部分中包含的spring-boot-maven-plugin的默认配置。
    从父级运行mvn spring-boot:run会导致:
    无法执行目标org.springframework.boot:spring-boot-maven-plugin:1.4.2.release:在项目上运行(default-cli)my-parent:找不到合适的主类,请在父级模块中

    不要使用spring-boot-starter-parent
    在depManagement中定义spring-boot-dependencies
    在my-parent的pluginManagement部分定义spring-boot-maven-plugin并在my-app模块的plugins部分包含插件。
    运行mvn spring-boot:从父级运行导致与#1相同的错误:
    无法执行目标org.springframework。boot:spring-boot-maven-plugin:1.4.2

    不要使用spring-boot-starter-parent
    在depManagement中定义spring-boot-dependencies如上文所述。
    在my-app的plugins部分定义spring-boot-maven-plugin
    运行mvn spring-boot:从父级运行会导致:
    在当前项目和插件组中找不到前缀为“spring-boot”的插件

    在上面描述的所有情况下,从my-app目录运行mvn spring-boot:run都可以正常工作。

    我想应该有办法让这件事成功。在传统的非引导Spring项目中,配置tomcat7插件非常简单,这样我就可以从父级运行mvn tomcat7:run-war,webapp子模块将按预期启动


  • 共有1个答案

    周翼
    2023-03-14

    可以通过在父POM中添加以下内容来实现:

      <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
              <skip>true</skip>
            </configuration>
          </plugin>
        </plugins>
      </build>
    

    在您的“我的应用程序”(Spring Boot模块)POM中:

     <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <fork>true</fork>
          <skip>false</skip>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    

    现在您可以在项目根中执行:

    mvn -pl my-app -am spring-boot:run
    
      null
     类似资料:
    • 我在mvn中有以下结构。 模块A是所有后续模块(B、C、...)继承的模块。该模块具有通用功能和jUnit/联调用例。它不是Web应用程序。 模块B是一个web应用程序。它依赖于模块B。 模块C是一个web应用程序。它依赖于模块B。 我们的Jersey rest/api代码位于模块A中。通过这种方式,无论我们部署什么模块,我们都可以访问rest/api。 到目前为止,我已经成功地在模块C中配置了M

    • 我不明白为什么这不起作用;似乎使用spring boot和angular作为maven模块的教程最终直接用java运行,所以这个问题不存在...但我想这应该还管用吧? Spring启动模块POM 棱角聚甲醛

    • 我已经为我的项目创建了一个oauth模块。它具有授权服务器机制、Spring Security机制和资源服务器机制。 我需要某些endpoint只有通过授权才能访问,因此我在资源服务器中配置了安全性: 在不同于OAuth的模块中进行是否可取?如果是,我如何保护呼叫并验证令牌?如何在另一个模块中使用资源服务器。

    • 我想创建一个运行多个python项目的脚本。每个项目都是阻塞的(意味着每个项目都应该永远运行),所以这个脚本必须并行运行每个项目。此外,我希望在关闭主shell之后,所有这些进程都关闭。这是我想出的shell代码 我尝试使用&使python进程异步运行,但是脚本在第二行之后没有继续,只有第一个项目在运行。 有没有一种方法可以运行所有的python进程?

    • 我已经配置了Maven多模块项目,当我在做 它为父项目中的两个模块创建war和Jar文件,当我在Tomcat6中部署war文件时,它工作正常。 但当我试图从eclipse内部运行web模块时。 右键单击项目- 然后项目不工作。 Web模块依赖于java项目,该项目也是多模块项目的一部分,因此我将此(java)项目的依赖项添加到Web项目中,但在Web项目中,java构建路径不包含此依赖项。有人知道

    • 我的maven项目结构: 我的问题是,我只需要运行父模块,它自动实例化子模块(tomcat服务器)。spring boot多模块项目有可能吗? 注意:我使用的是STS。父模块打包是pom,子模块打包是jar文件。 我的父pom文件 我的问题是如何使用Tomcat运行父项目?如果我运行父项目,子模块是否自动运行? 提前感谢!!!