2015-11-16 4 views
4

я могу использовать Maven для компиляции и тестирования программыMaven: жизненный цикл для запуска программы?

mvn compile 
mvn test 

Есть ли команда жизненного цикла, чтобы просто запустить программу, или сгенерировать скрипт, который будет запускать программу?

+0

Не могли бы вы подробнее рассказать? Запуск программы, которая что-то делает? Генерация кода? Предварительная обработка ресурсов? Немного подробней, пожалуйста;) –

+0

создание и упаковка сценариев http://stackoverflow.com/a/5262214 – zapl

+0

Независимо от того, что делает IDE при нажатии кнопки запуска. Например, мир привет будет печатать «Hello World». :) –

ответ

4

Если вы задаете этот вопрос, это означает, что неясно вам, что Maven lifecycle на самом деле.

Там нет жизненного цикла команды, только жизненного цикл сборки, который состоит из различных этапов .

Итак, чтобы было ясно: существует жизненный цикл сборки, состоящий из фаз, которые состоят из целей плагина.

Когда вы вызываете Maven с

mvn compile 

Вы призываете накопление фазы. В Maven есть list of predefined ordered phases. Когда вы вызываете фазу, вся фаза перед ней также вызывается. Вызов фазы означает, что вы вызываете все плагины, привязанные к этой фазе. Для случая compile это означает, что он, среди прочего, вызовет maven-compiler-plugin, который по умолчанию привязан к фазе compile.

Чтобы ответить на ваш вопрос строго: нет, для этого не существует команды жизненного цикла.

Однако вы можете настроить плагин в POM, который будет привязан к определенной фазе и вызвать эту фазу. Для этого вы можете обратиться к ответу @ manouti, который вводит exec-maven-plugin.

+1

Действительно, я был совершенно неясен. Список фаз прояснил многое в отношении цикла сборки. –

3

Для этого нет фазы жизненного цикла, но вы можете связать exec-maven-plugin, в частности exec:java goal. Например, для выполнения поставленной цели на этапе упаковки:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.4</version> 
    <executions> 
     <execution> 
      <id>run-java</id> 
      <phase>package</phase> 
      <goals> 
       <goal>java</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
      <mainClass>main.Class</mainClass> 
     </configuration> 
</plugin> 
+1

Но это не команда жизненного цикла, сама по себе (просто потому, что на самом деле нет такой вещи, как команда жизненного цикла). – Tunaki

+0

@ Тунаки. Вы правы. Я соответствующим образом адаптировал свой ответ. – manouti

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