标准方式 - 使用 maven-jar-plugin
- 仅在打包阶段生成 list 文件并直接生成 jar 文件。
我需要的是在编译阶段生成 list 并在 <target>/classes/META-INF
中可用。 .
我的目标是能够在 IntelliJ Idea 中以 Debug模式运行的项目中读取此 list 文件。 (想法解决了来自 <target>/classes
而不是来自 <target>/*.jar
的项目内 jar 依赖项 - 用于热交换目的)。
到目前为止,我所知道的唯一解决方案是在 src/main/java/resources/META-INF
中实际创建我自己的 MANIFEST.MF并让它在资源阶段被过滤+复制。但我想避免这种解决方案,我希望使用 <archive>
以标准方式生成 list 在 pom 文件中配置。
最佳答案
您可以使用 maven-bundle-plugin 来做到这一点。
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<index>true</index>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-URL>${project.url}</Implementation-URL>
<Java-Version>${java.version}</Java-Version>
<Java-Vendor>${java.vendor}</Java-Vendor>
<Os-Name>${os.name}</Os-Name>
<Os-Arch>${os.arch}</Os-Arch>
<Os-Version>${os.version}</Os-Version>
<Scm-Url>${project.scm.url}</Scm-Url>
<Scm-Connection>${project.scm.connection}</Scm-Connection>
</manifestEntries>
</archive>
</configuration>
</plugin>
关于java - 如何在编译阶段生成 MANIFEST.MF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34674073/