Maven - Модули и ModuleSet VS зависимости и зависимости - PullRequest
1 голос
/ 19 декабря 2011

У нас есть установочная папка, которую мы используем с maven для упаковки релиза,
Эта папка установки содержит несколько статических файлов и файл pom.xml.
Цель сборки - скопировать статические файлы в целевую папку установки и некоторые артефакты zip
из репозитория - разверните их и поместите в целевую папку в /unzipped.

.

папка установки:

/installation_folder
pom.xml
    /some_files
             /file1
             /file2

Целевая папка должна выглядеть так:

/target
    /installation_files
        /some_files
             /file1
             /file2
        /unzipped
             /prj1   - unzipped artifact prj1 from the repository
             /prj2   - unzipped artifact prj2 from the repository

На этом «установочном поме» - у меня есть ссылка на сборку xml; Я могу скопировать статические файлы - и получить артефакты из хранилища,
Вопрос в том, чтобы - скопировать zip из репозитория и развернуть их в целевой / разархивированной папке
я должен использовать Modules и moduleSet или зависимости и зависимости?
Должен ли pom.xml + assembly.xml выглядеть следующим образом: project.group installation_project П

<modules>
    <module>prj1</module>        
    <module>prj2</module>       
</modules>

...

и assembly.xml:

<moduleSets>
    <moduleSet>
        <includes>
            <include>*:*</include>
        </includes>
            <binaries>
            <unpack>true</unpack>
            </binaries>
        </binaries>
    </moduleSet> 


Или это должно выглядеть так:

<project>
<groupId>project.group</groupId>
<artifactId>installation_project</artifactId>
<packaging>pom</packaging>

    <dependencies>

        <dependency>
            <artifactId>prj1</artifactId>
            <groupId>gruop_id</groupId>
            <version>1.0-SNAPSHOT</version>
            <type>zip</type>
        </dependency>
        <dependency>
            <artifactId>prj2</artifactId>
            <groupId>gruop_id</groupId>
            <version>2.0</version>
            <type>zip</type>
        </dependency>
    </dependencies>

...

и assembly.xml:

<dependencySets>
    <dependencySet>
        <outputDirectory>installation_files/unzipped/</outputDirectory>
        <outputFileNameMapping>${artifact.artifactId}</outputFileNameMapping>
        <includes>
            <include>*:*:zip</include>
        </includes>
        <unpack>true</unpack>
    </dependencySet>
</dependencySets>

Спасибо!

1 Ответ

1 голос
/ 28 февраля 2012

Другим способом было бы просто подключить плагин зависимостей maven с целью = распаковать.

<plugin>
   <artifactId>maven-dependency-plugin</artifactId>
   <executions>
     <execution>
       <id>unpack</id>
       <phase>generate-resources</phase>
       <goals>
          <goal>unpack</goal>
       </goals>
       <configuration>
         <artifactItems>
           <artifactItem>
              <groupId></groupId>
              <artifactId></artifactId>
              <version></version>
              <type></type>
              <overWrite></overWrite>
              <outputDirectory></outputDirectory>
           </artifactItem>
         </artifactItems>
       </configuration>
     </execution>
   </executions>
</plugin>

Другой способ - использовать плагин для сборки, но я нахожу это довольно громоздким и обычно предназначен для более сложного создания сборки, чем простое разархивирование / архивирование.

...