2012-05-02 25 views
1

Maven Assembly插件允许在程序集描述符中指定不同的格式。我如何开发一种新的格式以支持它?为Maven Assembly插件创建新格式选项

我想创建一个ISO映像,而不是它已经支持的zip,jar或tar文件。我找到了一个可以创建ISO映像(https://github.com/stephenc/java-iso-tools)的插件,但不是作为程序集插件的一部分,因此使用该插件会非常高兴,甚至可以扩展该插件。

我基本上希望能够为我做装配描述如下:

<assembly> 
    <id>cd-image</id> 
    <formats> 
    <format>iso</format> 
    </formats> 
    <!-- Rest of descriptor here --> 
</assembly> 

我也是这样才能够创建档案中删除间接的额外的水平,所以当我声明一个文件应该在归档的根目录时,它确实是。这将是一个焦油炸弹,它是一个tar文件,但对于ISO映像将是一个有用的功能。

+0

我想你应该在相应的[邮件列表](http://maven.apache.org/plugins/maven-assembly-plugin/mail-lists.html)中提出这个问题。 –

回答

0

最好的事情是在问题跟踪系统中提出问题:http://jira.codehaus.org/browse/MASSEMBLY此外,以一种好的方式支持这个问题是查看maven-assembly-plugin的源代码,并尝试生成一个它实现了你喜欢的功能。 但是我怀疑它会被开发人员接受,因为您所提到的工具是基于GPL的软件,无法集成到Apache许可的部分中。所以如果他们后悔这样的话,我不会感到惊讶。但可能是我错了。试试吧。 此外,建议一个完全用于这种目的的新Maven插件(maven-iso-pugin?)可能是一个好主意。

而且非常重要的是你应该检查Maven Central,因为已经存在一个用于此目的的http://search.maven.org/#search|ga|1|iso9660-maven-plugin maven插件。

0

iso9660-maven-plugin(java-iso-tools的一部分)现在直接支持这个。你必须将它添加到你的pom.xml作为扩展和作为一个依赖于Maven的组装插件:

<build> 
    <extensions> 
     <extension> <!-- Adds "iso" as an assembly format. --> 
      <groupId>com.github.stephenc.java-iso-tools</groupId> 
      <artifactId>iso9660-maven-plugin</artifactId> 
      <version>2.0.1</version> 
     </extension> 
    </extensions> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
        <configuration> 
         ... 
        </configuration> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>com.github.stephenc.java-iso-tools</groupId> 
        <artifactId>iso9660-maven-plugin</artifactId> 
        <version>2.0.1</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 
</build> 

然后你就可以在你的装配描述符使用<format>iso</format>

我看到最初的提问者是将此功能添加到iso9660-maven-plugin的人。谢谢!

相关问题