0

Eclipse упрощает работу с несколькими модульными maven-проектами, потому что вам не нужно повторно строить и переустанавливать модуль до того, как зависимые модули Это. Таким образом, вы просто меняете код и затмеваете магические изменения в фоновом режиме.Maven/Eclipse - Принятие быстрой итерации Тестирование проекта, упакованного как файл WAR

Я также хочу добиться такого поведения для приемочных испытаний.

У меня есть

storage-service 
    storage-service-war 
    storage-service-acceptance-tests 

Если я использую встроенный причал или кот, чтобы проверить внутри хранилище-служба войны проекта, то, очевидно, изменения коды сразу просматриваться в тестах, но я не вижу какой-либо способ достижения такой же быстрой итерации тестирования при тестировании с помощью приемо-сдаточных испытаний.

Каждый способ, которым я смотрю на это, кажется, что мне нужно построить службу хранения-войны, а затем использовать созданный из этого артефакт, но он кажется излишним, когда вы хотите изменить только одну строку.

У кого-нибудь есть хороший метод для этого?

Приветствия

Пирса

ответ

0

Так, отвечая на мой собственный вопрос: D Решение, которое я придумал не будет работать на CI это, скорее всего, работать только при выполнении локальной сборки, как это делает использование относительных путей проектов. Внизу я описываю более надежный, но более сложный подход, который должен удовлетворять затмению и CI.

Я смотрел на установку attachClasses на true для конфигурации военного плагина военного проекта.

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <attachClasses>true</attachClasses> 
      </configuration> 
     </plugin> 
    </plugins> 

Вы можете ссылаться на баночке в зависимом проекте следующим образом

<dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>storage-service-war</artifactId> 
     <version>${project.version}</version> 
     <classifier>classes</classifier> 
    </dependency> 

Тогда я думал, что я мог бы запустить свои тесты внутри приемочного испытание модуля с помощью встроенного причала или кота и указывая их web.xml, определенный в военном проекте, используя относительный путь.

Это прекрасно работает с мавена через командную строку, но не в затмении :(

Проблема с этим состоит в том, что банки получают присоединять классы не подобран затмение интеграции m2e см - https://bugs.eclipse.org/bugs/show_bug.cgi?id=365419, к сожалению, оно не будет фиксировано.

Так Мое решение на данный момент является вручную добавить хранилища-сервис война проекта моего приемочного испытание пути сборки проекта в затмении. его не большое, но он работает

Вышеуказанный раствор немного Hacky но альтернатива, описанная ниже, немного более активна.

Разделив проект в дальнейшем, я думаю, можно было бы иметь правильную интеграцию и проекты, которые работают на CI

storage-service 
    storage-service-core 
    storage-service-war 
    storage-service-acceptance-tests 
    storage-service-config 

Ядро проекта содержит логику и источник веб-приложение и имеет тип затмения jar, config содержит файл web.xml и любые другие файлы конфигурации и также имеет тип jar.Затем приемочные испытания и военный проект являются войнами типа и служат лишь для того, чтобы упаковать основной проект в войну и извлечь конфигурацию в каталог webapp/WEB-INF, чтобы они могли совместно использовать общую настройку.