Maven Assembly Plugin - 在程序集中包含其他子依赖项

时间:2011-12-13 18:56:29

标签: maven maven-assembly-plugin

我父母一个人有四个孩子。其中一个孩子是建造一个包含其他3个模块罐子的拉链。这有效,但它没有获取各自的依赖关系。

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 个答案:

答案 0 :(得分:1)

你是否已将其他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>

答案 1 :(得分:1)

也许有点晚了,但无论如何:)。 您应该在父项目中移动程序集,但这不是真正的问题。

使用插件版本:

我的,这完全是功能性的(但是用法语,请原谅我;)

<?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有一些棘手的考虑......

希望这会有所帮助...