Плагин сборки Maven - включает другие дочерние зависимости в сборку - PullRequest
1 голос
/ 13 декабря 2011

У меня четверо детей под одним родителем.Одним из детей является создание почтового индекса, содержащего 3 других модуля jar.Это работает, но не получает их соответствующие зависимости.

module-build pom.xml:

...    
    <plugin>
       <artifactId>maven-assembly-plugin</artifactId>               
       <inherited>true</inherited>              
       <configuration>
          <descriptors>
             <descriptor>desc.xml</descriptor>
          </descriptors>
       </configuration>   
    </plugin>
...

desc.xml:

...

        <moduleSets>
            <moduleSet>
                <binaries>
                    <unpack>false</unpack>
                    <dependencySets>
                        <dependencySet>
                            <unpack>false</unpack>
                            <scope>runtime</scope>                  
                            <outputDirectory>lib</outputDirectory>
                        </dependencySet>
                    </dependencySets>
                </binaries>
            </moduleSet>
        </moduleSets>
    ...

РезультирующийПапка 'lib' не создана.

Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 19 июля 2012

Может быть, немного поздно, но неважно :).Вы должны переместить свою сборку в родительский проект, но это не является реальной проблемой.

Использование версии плагина:

Здесь моя, которая полностью функциональна (но по-французски, простите меня;))

<?xml version="1.0" encoding="UTF-8"?>
<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <!-- Ce chemin est lié au plugin maven-jar et à la génération du manifest 
        : à manipuler avec précautions -->
    <id>lib</id>
    <formats>
        <format>zip</format>
    </formats>
    <!-- Supprimer la création d'un répertoire dans l'archive au nom du projet -->
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <unpack>false</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
</assembly>

Это встроенная функция плагина (для получения зависимостей).Но я бы никогда не использовал его из многомодульного проекта, и я знаю, что есть некоторые хитрые соображения с использованием ob ModuleSet ...

Надеюсь, что это поможет ...

1 голос
/ 19 июля 2012

Вы указали другие 3 модуля как зависимость этого 4-го модуля, рядом с тем, что находятся в разделе модулей родительского модуля?

Если вы это сделаете, это должно работать, даже если вы делаете это:

<assembly>
 <id>final</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
        <unpack>false</unpack>
        <scope>runtime</scope>                  
        <outputDirectory>lib</outputDirectory>
    </dependencySet>
  </dependencySets>
</assembly>
...