Создать новый формат для плагина 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-бомба, если бы это был tar-файл, но была бы полезной функцией для образа ISO.
2 ответа
Лучше всего подать файл в систему отслеживания проблем: http://jira.codehaus.org/browse/MASSEMBLY а для того, чтобы поддержать это, нужно взглянуть на исходный код maven-assembly- плагин и может быть попытаться создать патч, который реализует функциональность, которую вы хотели бы иметь в нем. Но я сомневаюсь, что это будет принято разработчиками, потому что инструменты, на которые вы ссылаетесь, являются программным обеспечением на основе GPL, которое не может быть интегрировано в лицензионные части Apache. Поэтому я не удивлюсь, если они пожалеют о чем-то подобном. Но, может быть, я ошибаюсь. Просто попробуйте. Кроме того, было бы неплохо предложить новый плагин Maven, который именно для этой цели (maven-iso-pugin?).
И что очень важно, вы должны проверить Maven Central, потому что для таких целей уже существует плагин maven http://search.maven.org/ maven.
I so9660-maven-plugin (часть java-iso-tools) теперь поддерживает это напрямую. Вы должны добавить его в свой pom.xml как расширение и как зависимость от maven-assembly-plugin:
<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>
в вашем дескрипторе сборки.
Я вижу, что оригинальный asker был тем, кто добавил эту возможность в iso9660-maven-plugin. Спасибо!