programing

mvn spring-boot: 부모 모듈에서 실행하시겠습니까?

i4 2023. 3. 2. 21:59
반응형

mvn spring-boot: 부모 모듈에서 실행하시겠습니까?

다음과 같은 멀티 모듈 메이븐 프로젝트가 있습니다.

우리 부모님
--마이 도메인
--my-service
--my-app << 이것은 Spring Boot 모듈입니다.

달리고 싶다mvn spring-boot:run명령어를 부모 모듈에서 직접 실행할 수 있습니다.먼저 my-app 디렉토리에 CD를 삽입할 필요는 없습니다.

이것은, 의 설정에 관련하고 있는 것을 알 수 있습니다.spring-boot-maven-plugin제대로 못 맞힐 것 같아요.

다음을 시도했습니다.

  1. 사용하다spring-boot-starter-parent디폴트 설정에서는,spring-boot-maven-pluginmy-app의 플러그인 섹션에 포함되어 있습니다.
    입니다.mvn spring-boot:run부모로부터의 결과는 다음과 같습니다.
    Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:run (default-cli) on project my-parent: Unable to find a suitable main class, please add a 'mainClass' property -> [Help 1] in the parent module

  2. 사용하지 않다spring-boot-starter-parent.
    정의spring-boot-dependenciesdepManagement에서 설명합니다.
    정의spring-boot-maven-pluginmy-parent의 pluginManagement 섹션과 my-app 모듈의 plugins 섹션에 플러그인을 포함합니다.
    부모에서 mvn spring-boot: run을 실행하면 #1과 같은 오류가 발생합니다.
    goal org.springframework를 실행하지 못했습니다.boot: spring-boot-maven-plugin: 1.4.2.RELEASE: 프로젝트 my-parent: 실행(default-cli):적합한 기본 클래스를 찾을 수 없습니다. 'mainClass' 속성을 추가하십시오. -> [도움말 1]

  3. 사용하지 않다spring-boot-starter-parent.
    정의spring-boot-dependenciesdepManagement에서 설명합니다.
    정의spring-boot-maven-pluginmy-app의 플러그인 섹션에 있습니다.
    부모에서 mvn spring-boot: run을 실행하면 다음과 같은 결과가 됩니다.
    No plugin found for prefix 'spring-boot' in the current project and in the plugin groups

위에서 설명한 모든 경우,mvn spring-boot:run정상적으로 동작합니다.

이 일을 잘 풀 수 있는 방법이 있을 것 같아요기존 비부트 스프링 프로젝트에서는 구성이 매우 간단했습니다.tomcat7실행할 수 있는 플러그인mvn tomcat7:run-war부모로부터 Web App 서브 매니저가 정상적으로 기동합니다.

다음 부모 폼을 추가하여 수행할 수 있습니다.

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

In my-app(Spring Boot 모듈) 폼에는 다음과 같은 내용이 있습니다.

 <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

기타 참고 자료:

spring-boot maven 플러그인 구성 옵션:

skip: skips the execution of sprint-boot:run  [default: false]

fork: Flag to indicate if the run processes should be forked [default: true]

spring-boot maven 플러그인 파라미터 참조

maven 옵션:

-pl, --projects: Comma-delimited list of specified reactor projects to build instead of all projects. A project can be specified by [groupId]:artifactId or by its relative path   

-am, --also-make: If project list is specified, also build projects required by the list

maven CLI 옵션 참조

언급URL : https://stackoverflow.com/questions/41092200/run-mvn-spring-bootrun-from-parent-module

반응형