Maven不会使用mavenAssemblyPlugin附加非归档文件

时间:2014-02-17 13:16:36

标签: maven maven-assembly-plugin

我有一些文件列表(.jil)。 我想使用maven-assembly-plugin将它们附加到构建中。

使用“zip”部署这些文件并不困难 格式。
但是,“dir”格式会抛出异常:

[警告]程序集文件:C:\ Branches \ project-branch \ target \ project \ output \目录不是常规文件(可能是目录)。它无法附加到项目构建中以进行安装或部署。

pom文件:

<build>
  <plugins>

    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2.1</version>
      <executions>

        <execution>
          <id>make-devq</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <descriptors>
              <descriptor>
                ${basedir}/environments/dev/assembly/descriptor.xml
              </descriptor>
            </descriptors>
            <finalName>project</finalName>
            <appendAssemblyId>true</appendAssemblyId>
            <workDirectory>              
              ${project.build.directory}/${project.artifactId}/work/project
            </workDirectory>
            <outputDirectory>
              ${project.build.directory}/${project.artifactId}/output
            </outputDirectory>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

汇编描述符:

<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>project-id</id>
    <formats>
        <format>dir</format>
    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <fileSets>

        <fileSet>
            <directory>${basedir}/environments/dev/jils/</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>*.jil</include>
            </includes>       
        </fileSet>

    </fileSets>

</assembly>

2 个答案:

答案 0 :(得分:1)

要添加单独的文件,您应该使用提供此类选项的build-helper-maven-plugin

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <!-- add configuration for antrun or another plugin here -->
      </plugin>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <file>some file</file>
                  <type>extension of your file </type>
                  <classifier>optional</classifier>
                </artifact>
                ...
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

使用dir格式,您无法将这些文件附加到项目中。 顺便说一句:目前最新版本的maven-assembly-plugin是2.4。

答案 1 :(得分:1)

根据Maven doc,接受的格式为:

  • dir - 创建目录zip
  • 创建ZIP文件格式tar
  • 创建TAR格式tar.gz
  • 创建gzip&#39; d TAR格式tar.bz2
  • 创建bzip&#39; d TAR格式