Создайте JAR с пользовательским манифестом в maven

Я пытаюсь заставить maven создать банку артефактов с помощью пользовательского MANIFEST.MF.

Звучит как простая задача, используя следующий фрагмент:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifestFile>${project.build.directory}/META-INF/MANIFEST.MF</manifestFile>
        </archive>
    </configuration>
</plugin>

Проблема в том, что maven-jar-plugin по-прежнему «путается» с манифестом, который я создал вручную. В документации указано

Содержимое вашего собственного файла манифеста будет объединено с записями, созданными Maven Archiver.

К сожалению, это не относится к версии манифеста. Он всегда будет установлен на «1.0». (Я знаю, что теоретически это правильно, но по причинам, на которые я не могу повлиять, мне нужно другое значение). Любые идеи о том, как заставить плагин jar вообще не касаться моего манифеста или, по крайней мере, держать в руках версию манифеста?


person Nitek    schedule 01.12.2016    source источник


Ответы (1)


Наконец-то мне удалось решить мою проблему с помощью плагина maven-antrun:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>package</phase>
            <configuration>
                <target>
                    <jar file="${project.build.directory}/${project.build.finalName}.jar" update="true" manifest="${project.build.directory}/META-INF/MANIFEST.MF" />
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
person Nitek    schedule 01.12.2016