Maven程序集插件未根据描述符构建文件

时间:2019-04-11 00:36:21

标签: java xml maven

我正在尝试创建一个名称为tar.gz的{​​{1}},并且在该文件中有一个my-project-2.0.tar.gz文件,其中所有我的Java类都称为zip。其原因是由于某些脚本文件正在寻找这种格式。

我已经在my-project.zip文件和描述符文件中设置了Maven程序集插件。

这个问题是当我运行我的构建时,插件和描述符被忽略。

日食的目标是pom

clean package

这是捆绑包描述符:

<pluginManagement>
<plugins>
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.5</version>
    <executions>
        <execution>
            <phase>package</phase>
            <id>assemble</id>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>src/assembly/prep.xml</descriptor>
                </descriptors>
                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
        </execution>
        <execution>
            <phase>package</phase>
            <id>bundle</id>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <finalName>my-project-2.0</finalName>
                <descriptors>
                    <descriptor>src/assembly/bundle.xml</descriptor>
                </descriptors>
                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
        </execution>
    </executions>
</plugin>
</plugins>
</pluginManagement>

这是准备描述符

<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">
    <id>bundle-id</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>target</directory>
            <includes>
                <include>my-project.zip</include>
            </includes>
            <outputDirectory></outputDirectory>
        </fileSet>
        <fileSet>
            <directory>src/assembly</directory>
            <includes>
                <include>place.sh</include>
            </includes>
            <lineEnding>unix</lineEnding>
            <fileMode>0755</fileMode>
            <outputDirectory></outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

我曾经尝试运行<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"> <id>prep-id</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>target/classes</directory> <outputDirectory></outputDirectory> </fileSet> </fileSets> </assembly> ,但收到“找不到程序集描述符”错误

我尝试将插件重写为:

clean assembly:assembly

但是我不知道如何将内部<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <finalName>my-project-2.0</finalName> <descriptors> <descriptor>src/assembly/bundle.xml</descriptor> </descriptors> <appendAssemblyId>false</appendAssemblyId> </configuration> <executions> <execution> <phase>package</phase> <id>assemble</id> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> 命名为zip

2 个答案:

答案 0 :(得分:0)

使用prep.xml创建zip文件时,zip文件的名称应为${project.artifactId}-${project.version}.zip

因此,在您的情况下为my-project-$ {project.version} .zip。

尝试通过以下方式编辑bundle.xml

<fileSet>
  <directory>target</directory>
  <includes>
    <include>my-project-${project.version}.zip</include>
  </includes>
  <outputDirectory></outputDirectory>
</fileSet>

答案 1 :(得分:0)

我的构建忽略我的描述符的主要原因是因为我所有的插件都包裹在<pluginManagement> </pluginManagement>周围。

这解决了我的问题