Попробуйте это:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>test-manifest-mf</id>
<phase>package</phase>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestFile>foo/TEST-MANIFEST.MF</manifestFile>
</archive>
</configuration>
</execution>
<execution>
<id>default-manifest-mf</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestFile>foo/PROD-MANIFEST.MF</manifestFile>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Эта конфигурация выполняет 2 разных исполнения одного и того же плагина, каждый из которых имеет свою собственную конфигурацию архива.
Если где-то в вашей иерархии есть родительский pom, для которого архив настроен вне выполнения, например:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
... other archive config ...
</archive>
</configuration>
</plugin>
тогда эта конфигурация будет объединена с тем, что у вас есть по умолчанию. Если вы не хотите, чтобы это происходило, добавьте атрибут combine.self
к элементу <archive>
следующим образом:
<archive combine.self="override">
как описано в разделе плагинов справочника POM .