2

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 文件,这将是一个 tar 炸弹,但对于 ISO 映像来说将是一个有用的功能。

4

2 回答 2

1

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

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

于 2012-05-05T13:51:52.607 回答
0

iso9660-maven-plugin(java-iso-tools 的一部分)现在直接支持这一点。您必须将其作为扩展名和对 maven-assembly-plugin 的依赖项添加到您的 pom.xml 中:

    <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 的人。谢谢!

于 2016-03-09T17:22:17.713 回答