2013-07-25 2 views
1

Я импортировал Spring In Action 3. Как мне изменить pom.xml на run a Main class вместо или до теста Junit? Я добавил следующий плагин в родительский pom.xml, но это не будет выполнено.Запуск основного класса весной в действии 3

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>java</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <mainClass>com.springinaction.knights.KnightMain</mainClass> 
      </configuration> 
     </plugin> 

ответ

1

Вы должны связать выполнение плагина к test фазе, например

 <executions> 
      <execution> 
       <id>run-class-as-part-of-tests</id> 
       <phase>test</phase> 
       <goals> 
       <goal>java</goal> 
       </goals> 
      </execution> 
     </executions> 

Это не остановить выполнение модульных тестов, как maven- surefire-plugin (который запускает тесты) также привязан к тестовой фазе. Поэтому, если вы хотите пропустить тесты, вам нужно установить свойство skip в true для плагина maven-surefire (проверьте документацию here)

+0

Теперь Main будет выполнен, но я получаю «ClassDefNotFoundException». Где мне нужно установить classpath? – Nightowl

+0

Я нашел причину. Плагин должен быть вставлен в «child-pom», а не в parent-pom. @Augusto, спасибо за помощь – Nightowl

+0

Ваш прием! Не стесняйтесь отвечать и принимать ответ :) – Augusto

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