2015-05-22 2 views
1

Я использую Maven для создания моего проекта, но когда я запускаю команду mvn clean package deploy, он пытается развернуть артефакт дважды. У меня есть плагин build-helper-maven-plugin, настроенный для присоединения файла уха, который я создаю с помощью настраиваемого плагина.Maven пытается развернуть тот же артефакт дважды

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <version>1.9.1</version> 
      <executions> 
       <execution> 
        <id>attach-artifacts</id> 
        <phase>package</phase> 
        <goals> 
         <goal>attach-artifact</goal> 
        </goals> 
        <configuration> 
         <artifacts> 
          <artifact> 
           <file>${project.build.directory}/${project.artifactId}-${project.version}.ear</file> 
           <type>ear</type> 
          </artifact> 
         </artifacts> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Когда я отключить встроенный помощник-Maven-плагин, оставшийся артефакт (только ПОМ) загружается только один раз.

Что делать, чтобы Maven мог развернуть дополнительный файл уха только один раз?

Erates

EDIT

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>my.group.id</groupId> 
    <artifactId>my.artifact.id</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <name>My Project</name> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <scm> 
     <!-- Config --> 
    </scm> 

    <distributionManagement> 
     <repository> 
      <!-- Config --> 
     </repository> 
     <snapshotRepository> 
      <!-- Config --> 
     </snapshotRepository> 
    </distributionManagement> 

    <dependencies> 
     <!-- My Dependencies here --> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.9</version> 
       <executions> 
        <execution> 
         <id>copy-dependencies</id> 
         <phase>package</phase> 
         <goals> 
          <goal>copy-dependencies</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${project.build.directory}</outputDirectory> 
          <overWriteReleases>false</overWriteReleases> 
          <overWriteSnapshots>false</overWriteSnapshots> 
          <overWriteIfNewer>true</overWriteIfNewer> 
          <includeGroupIds>my.group.ids.that.need.to.be.included</includeGroupIds> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>my.group.id</groupId> 
       <artifactId>my.custom.plugin</artifactId> 
       <version>1.0.1</version> 
       <configuration> 
        <params> 
         <!-- My params --> 
        </params> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>my-custom-goal</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <!-- Release Plugin --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-release-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <goals>clean package deploy</goals> 
        <tagBase>https://my.tagbase</tagBase> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>build-helper-maven-plugin</artifactId> 
       <version>1.9.1</version> 
       <executions> 
        <execution> 
         <id>attach-artifacts</id> 
         <phase>package</phase> 
         <goals> 
          <goal>attach-artifact</goal> 
         </goals> 
         <configuration> 
          <artifacts> 
           <artifact> 
            <file>${project.build.directory}/${project.artifactId}-${project.version}.ear</file> 
            <type>ear</type> 
           </artifact> 
          </artifacts> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    <modules> 
     <!-- My Modules --> 
    </modules> 
</project> 
+0

Почему вы используете build-helper-plugin для прикрепления файла уха? Вы используете плагин maven-ear-plugin или упаковку? (Полный файл pom был бы полезен). – khmarbaise

+0

@khmarbaise Я добавил полный pom (удалил некоторую конфиденциальную информацию). Файл уха добавляется с использованием зависимости и настраивается с помощью настраиваемого плагина. Вот почему нет плагина maven-ear-плагина – Erates

ответ

4

Сначала вы используете модуль и пытаетесь сделать странные вещи в вашем родительском П (зависимость-плагин, встроенный помощник и т.д.). В родителях никогда не должно быть казни, как у вас в вашем пом. Вы должны сделать соответствующую конфигурацию/выполнение в соответствующих модулях, потому что это определение будет унаследовано от всех дочерних элементов.

Вы хотите создать файл уха? Чем вы должны использовать упаковку ear, и ваш файл уха будет просто развернут с помощью mvn deploy.

Кроме того, вы, казалось, поняли причину жизненного цикла, если вы звоните:

mvn clean package deploy 

это может быть уменьшено до:

mvn clean deploy 

причина пакет жизненного цикла является частью Deploy поэтому я рекомендую читайте life cycle информацию.

+0

[Здесь у вас есть пример, как может выглядеть сборка javaee] (https://github.com/khmarbaise/javaee/). – khmarbaise

+0

Я делаю mvn clean deploy now, и теперь он только загружает один раз. Спасибо!! – Erates

+0

Вы должны очистить свой родительский pom, потому что это неправильно, несмотря на то, что он в настоящее время работает так, как вы ожидаете. – khmarbaise

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