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

Другие вопросы по тегам