2014-10-24 3 views
3

У нас есть большое приложение, состоящее из множества модулей и полной сборки (с интеграционными тестами), занимает до часа. Есть ли способ настроить maven таким образом, чтобы он пропускал тесты модулей (или даже классов), где ничего не было изменено? Возможно, существует какой-то плагин для этого или этот плагин может быть написан?Настройте Maven, чтобы не запускать тесты, если ничего не изменилось

+0

Я не пробовал себя, но лучшим подходом, похоже, является инкрементный плагин построения maven desc ribed здесь: http://harshana05.blogspot.ch/search?q=incremental+maven – JBA

+0

Мне нравится слышать о вашем успехе с этим (так как у нас есть многомодульные проекты, поддерживаемые на GIT, все разные ветви построены на тот же экземпляр Jenkins, следовательно, приводит к сценариям сборки, которые могут занимать до 24 часов, и я считаю, что более внимательно это рассмотрю). – JBA

+0

Я сделал это с комбинацией sed/awk и 'git diff -name-only', чтобы получить модули, которые изменились с момента пересмотра, затем выполните mvn -amd -pl modulenames clean install –

ответ

0

Чтобы пропустить тест в модуле вы можете добавить это в pom.xml этого модуля:

<project> 
[...] 
<build> 
    <plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.4.2</version> 
    <configuration> 
     <skipTests>true</skipTests> 
    </configuration> 
    </plugin> 
</plugins> 
</build> 
[...] 

или с помощью профиля в модуле pom.xml

0

При использовании в командной строке:

mvn -q clean package -DskipTests 
Смежные вопросы