2015-01-21 1 views
1

Я хотел бы запустить выпуск Maven, чтобы он выполнял assembly:single для дополнительного модуля. Я включил assembly:single как часть install вспомогательного модуля, то есть при запуске install на верхнем уровне он создает jar-with-dependencies. Но когда запускается release:perform, хотя он настроен на вызов install (как цель), он не создает jar-with-dependencies.Maven release для выполнения сборки один в дополнительном модуле

Как запустить выпуск на верхнем уровне и выполнить этот выпуск с assembly:single на подвыборке с использованием версии выпуска?

<modules> 
    <module>parent</module> 
    <module>api</module> 
    <module>testing</module> 
    <module>main</module> 
</modules> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <goals>install</goals> 
       <completionGoals>install</completionGoals> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Это модуль, к югу в main

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>com.example.Main</mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      <executions> 
        <execution> 
         <phase>install</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+1

Показать ваши полные файлы pom, иначе сложно догадаться, что вы делаете? – khmarbaise

+0

@khmarbaise Спасибо, обновлено – Dan

+0

Это довольно странно, чтобы установить «установить» в качестве цели выпуска (развертывание выглядит лучше), но, увидев фрагменты pom, он должен работать. Может быть, посмотрите, могут ли быть проблемы с профилем. А также разместите свои командные строки выпуска. – Tome

ответ

3

Использование ниже конфигурации для плагина выпуска:

<cofiguration> 
    <preparationGoals>install</preparationGoals> 
</configuration> 

и начать подготовку выпуска с нуля:

mvn release:prepare -Dresume=false 

Более подробное объяснение параметров модуля maven-release-плагина:

<goals>install</goals> Вызывается по версии: выполнить. Release: выполнить клонирование вашего репо в каталог цели/проверки и называет установку.

<preparationGoals>install</preparationGoals> Вызывается по версии: готовят. Установка выполняется до совершения, по умолчанию выполняется очистка.

<completionGoals>install</completionGoals> Вызывается по версии: готовят. Установка выполняется после совершения. В этом случае повторяется цикл цельной сборки.

+0

Это конфигурация, которую использует OP, но она не делает то, что он хочет. –

+0

OP должен использовать prepareGoals и -Dresume = false –

+0

Спасибо, что так сработало. В конечном счете, моя ошибка заключалась в том, чтобы использовать завершениеGoal, а не готовить Goal. – Dan