2016-12-11 2 views
3

У меня есть Maven проект мульти-модуль, как это:Запустить mvn spring-boot: запустить из родительского модуля?

мой родитель-
--my-домен
--my-служба
--my-приложение < < < это модуль Spring загрузки

Я хочу запустить команду mvn spring-boot:run непосредственно из родительского модуля без необходимости сначала записывать в каталог «my-app».

Я полагаю, что это связано с конфигурацией spring-boot-maven-plugin, но я не могу понять, что это правильно.

Я попытался следующие:

  1. Использование spring-boot-starter-parent и в противном случае по умолчанию конфигурации с spring-boot-maven-plugin включены в плагинах разделе моего-приложения.
    Запуск 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-dependencies в depManagement, как описано в элементе.
    Определите spring-boot-maven-plugin в разделе pluginManagement my-parent и включите плагин в разделе плагинов модуля my-app.
    Запуск mvn spring-boot: запустить из родительских результатов с той же ошибкой, что и # 1:
    Не удалось выполнить цель org.springframework.boot: spring-boot-maven-plugin: 1.4.2.RELEASE: run (default- cli) по проекту my-parent: Невозможно найти подходящий основной класс, пожалуйста, добавьте свойство «mainClass» -> [Справка 1]

  3. НЕ используйте spring-boot-starter-parent.
    Определить spring-boot-dependencies в depManagement, как описано в элементе.
    Определить spring-boot-maven-plugin в разделе плагинов my-app.
    Запуск MVN весна-загрузки: бежать от родительских результатов в:
    No plugin found for prefix 'spring-boot' in the current project and in the plugin groups

Во всех описанных выше случаях, бег mvn spring-boot:run из каталога мое приложение работает отлично.

Я полагаю, что должен быть способ сделать эту работу.В традиционном проекте без загрузки Boot было довольно просто настроить плагин tomcat7, чтобы я мог запускать mvn tomcat7:run-war от родителя, и подмодуль webapp запустится как ожидалось

ответ

7

Вы можете сделать это, добавив следующее В родительском помпе:

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

И в вашем в моем-приложении (модуль загрузки Spring) П:

<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 

Дополнительные ссылки:

+0

это работает! благодаря! – Justin

Смежные вопросы