2016-02-08 4 views
0

Существует несколько приложений, которые необходимо создать и упаковать из нескольких модулей.несколько раз несколько модулей в родительском pom

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

root 
    parent/ 
    pom.xml 
    moduleA/ 
    pom.xml 
    moduleB/ 
    pom.xml 
    moduleC/ 
    pom.xml 

Например, приложение «Профиль-1» потребуется подмножество существующих модулей, которые будут построены и собрать как смоляной шар. Тар будет содержать несколько банок и различные файлы конфигурации, извлеченные из целевого/дополнительного модуля.

Я использую сценарий оболочки, вызванный с помощью exec-maven-plugin, чтобы собрать tar.

Проблема, с которой я сталкиваюсь, заключается в том, что в одном приложении мне нужно создать один и тот же модуль несколько раз, но с разными параметрами maven.

Каков наилучший способ для этого?

<profiles> 
     <profile> 
      <id>profile-1</id> 
      <modules> 
       <module>../moduleA</module> 
       <module>../moduleB</module> 
       <!-- <module>../moduleC</module> --> 
      </modules> 
      <properties> 
       <global.version>0.0.1-SNAPSHOT</global.version> 
      </properties> 
      <build> 
       <!-- use maven exec plugin to run a shell script which generates the tar ball picking jars and config files from different modules target dirs --> 
       <plugins> 
       </plugins> 
      </build> 
     <profile> 
</profiles> 

модуль образца суб ПОМ

<groupId>com.test</groupId> 
    <artifactId>moduleC</artifactId> 
    <packaging>bundle</packaging> 
    <version>${global.version}</version> 

    <name>test :: ${project.artifactId} :: ${name} </name> 


    <parent> 
     <groupId>com.test</groupId> 
     <artifactId>parent</artifactId> 
     <version>${global.version}</version> 
     <relativePath>../parent</relativePath> 
    </parent> 

вещи я пытался:
1) Могу ли я разделить на несколько профилей и вызывать их -Pprofile-1, профиль-2?
Это не сработало для меня, но я буду делать что-то неправильно.

2) Есть другой сценарий оболочки, который имеет командную строку mvn для сборки модуляC различными способами.
- Несмотря на то, что я перехожу в «-Dglobal_version», запуск модуля из командной строки mvn, похоже, не находит родителя в репозитории.

Я попытался сделать «-N», чтобы поставить родительский pom в репозиторий, прежде чем создавать приложение, но не помогло.

+1

«Я использую сценарий оболочки вызывается с помощью EXEC-Maven-плагин, чтобы собрать смолу . ". Это большой признак того, что вы что-то делаете неправильно. Ассембли обычно выполняются с помощью 'maven-assembly-plugin'. Почему у вас есть много профилей? Это также запах в вашей сборке. – Tunaki

+0

Я могу использовать плагин сборки. Мне нужно собрать и скомпоновать различные приложения, которые собраны вместе с использованием разных комбинаций вспомогательных модулей. Но как я могу построить один и тот же модуль несколько раз, передавая разные параметры maven? – user127091

ответ

0

Лучший способ:

mvn clean install --projects moduleA, moduleB 
mvn clean install --projects moduleB, moduleC 

Вы не можете запустить несколько вариантов сборки с Maven (see this stackoverflow question)

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