barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

понедельник, 11 марта 2013 г.

Maven module project: выполнения гола только одного из модулей

Задача:

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

Решение:

Можно воспользоваться плагином maven-invoker-plugin. Ниже приведен пример его конфига, выполняющий гол "deploy" модулемя "MyModule1":
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-invoker-plugin</artifactId>
        <version>1.8</version>
        <configuration>
          <debug>true</debug>
          <pomIncludes>
            <pomInclude>MyModule1/pom.xml</pomInclude>
          </pomIncludes>
          <goals>
            <goal>deploy</goal>
          </goals>
          <projectsDirectory>${basedir}</projectsDirectory>
          <properties>
            <myprop1>${myprop1}</deployment.carbon.host>
          </properties>
        </configuration>
      </plugin>
Также в вышеприведенном примере выполняется передача дочерней сборке одного из параметров родительской (myprop1).
Выполнить описанное в конфигурации действие можно либо навесив его выполнение на какую-либо из фаз родительского проекта (через <execution>), либо вызывая его явно для родительского проекта:
mvn invoker:run

Комментариев нет:

Отправить комментарий