maven程序集插件:descriptorRef不使用basedir

时间:2018-03-22 14:12:20

标签: maven maven-assembly-plugin

我正在使用maven程序集插件来压缩我的web应用程序dist文件夹。 我使用这个descriptorRef文件:

<assembly>
    <id>webapp-build</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>dist</directory>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>**/*</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

我将它用作父pom中的依赖项:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.0</version>
    <dependencies>
        <dependency>
            <groupId>com.company</groupId>
            <artifactId>build-tools</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>webapp-build</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptorRefs>
                    <descriptionRef>webapp-build</descriptionRef>
                </descriptorRefs>
                <basedir>${project.assembly.directory}</basedir>
            </configuration>
        </execution>
    </executions>
</plugin>

根据使用此父pom的孩子,我想告诉maven程序集插件在哪个目录中必须使用webapp-build程序集描述符。我尝试使用<basedir>属性,但它没有使用它。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

descriptorRef is intendedclasspath或使用预定义描述符加载程序集描述符。如果您想使用给定的描述符,则必须使用descriptors,而不是这样:

 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>assemblies</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/assembly/assembly.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

此外,maven-assembly-plugin:single

不存在basedir配置元素

答案 1 :(得分:0)

<basedir>不是assembly:single的参数。有descriptorSourceDirectory

  

<强> descriptorSourceDirectory:

     

扫描描述符文件的目录。注意:这可能无法正常使用程序集组件。