Как использовать непрерывную интеграцию с проектом Eclipse?
-
03-07-2019 - |
Вопрос
Некоторое время я использовал maven2 и hudson для непрерывной интеграции, но обнаружил, что Eclipse и Maven не очень хорошо работают вместе.Конечно, есть плагин, но неудобно объединять проект maven во что-то, что нравится eclipse, а время сборки и модульного тестирования слишком велико.Я подумываю вернуться к чистому проекту затмения без участия ant и maven.С бесконечным плагином и, возможно, агентом JavaRebel, это дало бы мне очень быстрый цикл сборки-развертывания-тестирования.Однако мне все равно хотелось бы иметь автоматическое тестирование и тестирование, поэтому:
Как использовать непрерывную интеграцию с проектом Eclipse?
Есть ли способ сделать это из командной строки?
Есть ли сервер сборки, который уже поддерживает его изначально?
Решение 2
Мне удалось найти хорошее решение.Я просто получил бесконечность (можно установить с торговой площадки Eclipse), чтобы работать при использовании maven и eclipse.
В Eclipse->Свойства проекта->Путь сборки Java->Источник снимите флажок:"Разрешить выходные папки для исходных папок"
Это позволит вашему проекту иметь более одного пути вывода, и Eclipse начнет сообщать о тестовых классах как о части пути к классам.Теперь Infinitest находит его и начинает тестировать!
Все, что я сделал, это использовал официальный плагин Maven Eclipse и добавил его в свой POM.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.infinitest</groupId>
<artifactId>infinitest</artifactId>
<scope>test</scope>
<version>4.0</version>
</dependency>
</dependencies>
Другие советы
Да, плагин Eclipse Maven2 на данный момент — дерьмо.Но я бы посоветовал вам подождать, использование Maven2 дает много преимуществ, так что оно на самом деле уравновешивается.
Что мы делаем, так это то, что мы используем Eclipse для разработки и используем Maven только для управления зависимостями.Все остальное делается путем запуска «mvn» в командной строке.Мы храним тесты в своих собственных проектах интеграционного тестирования (...-itest) и имеем сервер непрерывной интеграции, который выполняет сборку в два этапа: сначала создается фактический код, а затем проходит сборка и запуск проектов -itest.(Первый проход (чистая сборка) обычно выполняется очень быстро, а сборка интеграционных тестов (с запуском тестов) обычно занимает довольно много времени.)
Вот командная строка для запуска тестов mvn:mvn -o verify -Ditest
Конечно, вам нужно определить профиль «itest» в родительском pom:Скажем, вот так:
<profiles>
<profile>
<id>integration-test</id>
<activation>
<property>
<name>itest</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>itest</id>
</execution>
</executions>
<configuration>
<testSourceDirectory>src/main</testSourceDirectory>
<testClassesDirectory>target/classes</testClassesDirectory>
<forkMode>once</forkMode>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Я успешно использовал Eclipse + Ant с CruiseControl.Если вам нужна автоматизация, вам, вероятно, понадобится нечто большее, чем просто чистый Eclipse.
CruiseControl может автоматически получить копию вашего проекта из системы контроля версий, собрать ее, запустить тесты, а затем обновить веб-приложение с учетом результатов.Последний раз, когда я им пользовался, он был довольно гладким, но это было очень давно.