我需要将 MainClass 添加到由 maven 生成的 jar 中的清单文件中。在 SO 和 else-where 上搜索显示了几个选项 - 其中 2 个是
方法 1:添加到 maven-compiler-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<archive>
<manifest>
<mainClass>com.mypackage.myMainClass</mainClass>
<!--addClasspath>false</addClasspath-->
</manifest>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
方法 2:使用 maven-assembly-plugin
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>foo.bar.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
如果您检查,清单类配置/指令在<archive>
标签下。
我的问题是为什么它在<archive>
标签下?我不明白标签的命名约定/相关性。我们没有在这里存档任何东西。