部署之前Maven部署检查md5

时间:2017-06-04 06:51:55

标签: java maven

我正在使用maven 3,我在一个有很多模块的OSGi项目上工作。 每个模块都有不同的版本,因此当有人进行修改时,他需要将版本更新为-SNAPSHOT。但有时人们忘记更改版本,因此在部署时,没有任何部署,并且新版代码不会嵌入到版本中。 这就是为什么我想覆盖部署maven插件只在发布jar上添加md5验证(不是快照,因为我确定它们已被部署)并写一个log.warn说“检查模块X的版本,因为它似乎模块已经改变但版本与之前的版本相同“

Currenlty当我进行部署时,我得到了一个模块的发布jar,我在目标目录中将md5与jar进行比较,但由于MANIFEST,md5永远不会相同所以我总是得到警告。 我改变了一些代码来检查文件中的md5文件,现在我可以这样报告不同的文件而不检查文件列表(M​​ANIFEST ....) 但是,如果90%的文件具有相同的md5,则其他不是,但是如果。我打开2个不同的文件,实际上它们是相同的...只是因为nexus jar是在linux上构建的,而目标jar是在windows上构建的......有些文件不同而且很多其他文件都没有......

如何在linux或具有相同md5的Windows上创建jar构建?它有可能还是取决于很多事情,比如processeur,linux / windows?

感谢提前,如果你有任何其他想法在我的其他manear做我想要的......

1 个答案:

答案 0 :(得分:0)

您可以通过不允许在提交中允许稳定版本来改进发布过程。实际上,提交应该以SNAPSHOT版本进行。那你怎么能保证这个呢?您可以编写一个预挂钩提交来验证正在提交的此项目的pom.xml是否在其版本属性上具有SNAPSHOT。

因此,在部署模块之前,您需要运行发布过程,将POM提交到稳定版本。例如,Maven Release Plugin就是这样做的。