2016-08-02 8 views
0

В моем проекте у меня есть несколько файлов, которые я упаковываю в ZIP-файл и загружаю в репозиторий Nexus.Как загрузить ZIP-файл в Nexus с помощью Maven и избежать создания артефакта pom в Nexus?

Я реализовал оба действия с использованием Maven сборки плагин:

pom.xml

<groupId>com.ddd.tools</groupId> 
<artifactId>mytool</artifactId> 
<version>2.1.0</version> 
<packaging>pom</packaging> 

<name>Tool</name> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <!-- File bin.xml saves information about which files are to be included to the ZIP archive. --> 
       <descriptor>bin.xml</descriptor> 
       <finalName>${pom.artifactId}-${pom.version}</finalName> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

BIN.XML

<assembly ...> 
    <id>bin</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <fileSets> 
     <fileSet> 
      <directory>src/release</directory> 
      <outputDirectory>/</outputDirectory> 
      <includes> 
       <include>Tool.exe</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 

Теперь, когда я смотрю в Nexus я вижу два артефакта:

<dependency> 
     <groupId>com.ddd.tools</groupId> 
     <artifactId>mytool</artifactId> 
     <version>2.1.0</version> 
     <type>pom</type> 
    </dependency> 

и

<dependency> 
    <groupId>com.ddd.tools</groupId> 
    <artifactId>mytool</artifactId> 
    <version>2.1.0</version> 
    <classifier>bin</classifier> 
    <type>zip</type> 
</dependency> 

Я заинтересован только в последнем ZIP артефакт, потому что это ZIP-файл я загружен.

Как я могу избавиться от первого артефакта POM от Nexus? Или есть сценарий, в котором я мог бы нуждаться в этом?

+0

Сначала конфигурация finalName в вашем pom бесполезна для загрузки в Nexus. И вы не можете предотвратить артефакт pom, потому что это необходимо. И да, все времена, когда вы используете такую ​​зависимость, артефакт pom используется для определения артефакта. Вы вставили фрагменты только для использования в качестве зависимости, но им нужен артефакт pom, который необходим для анализа того, что это за артефакт, и если он имеет другие зависимости .. (не в этом случае). – khmarbaise

ответ

0

Я считаю, что вы хотите сделать, это возможно при использовании raw repos in Nexus 3. AFAIK, pom требуется для фактической загрузки артефактов, за khmarbaise