Создайте новый параметр формата для плагина 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.


person William    schedule 02.05.2012    source источник
comment
Я думаю, вам следует задать этот вопрос в соответствующем списке рассылки.   -  person Andrew Logvinov    schedule 02.05.2012


Ответы (2)


Лучше всего зарегистрировать проблему в системе отслеживания проблем: 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 уже для таких целей.

person khmarbaise    schedule 05.05.2012

Плагин iso9660-maven (часть java-iso-tools) теперь поддерживает это напрямую. Вы должны добавить его в свой pom.xml как расширение и как зависимость от плагина maven-assembly:

    <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. Спасибо!

person James Marble    schedule 09.03.2016