我们使用 git、maven 和 logback。
这意味着日志中的堆栈跟踪显示了包含堆栈跟踪中每一行的 jar 的实现版本(有关示例,请参见http://logback.qos.ch/reasonsToSwitch.html#packagingData )。
因此,如果我们可以将当前构建的 SHA1 打包到正在构建的工件清单中的该字段中,那么很容易从 git 中找到确切的源,该源生成包含源中该单独行的工件。
根据http://maven.apache.org/shared/maven-archiver/examples/manifestEntries.html的方法是<key>value</key>
在 pom 的 maven-jar-plugin 部分中有一行。在我的情况下,这意味着
<Implementation-Version>FooBar</Implementation-Version>
这导致
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.3:jar (default-jar) on project axsFTP: Unable to parse configuration of mojo org.apache.maven.plugins:maven-jar-plugin:2.3:ja
r for parameter manifest: Cannot find setter, adder nor field in org.apache.maven.archiver.ManifestConfiguration for 'implementationVersion' -> [Help 1]
鉴于我可以从https://github.com/koraktor/mavanagaiata获取 SHA1,如何在 MANIFEST.MF 文件中正确设置它?