标记maven工件,以便以后重新打包确切的输出
我正在寻找一种方法来标记maven用于重新打包战争的工件 由于我使用的一些依赖项取决于版本的范围,工件可能会随着时间的推移而变化,我希望能够重新发布web应用程序的特定版本(例如,当需要热修复程序时) 经过一些研究,我发现我可以使用 mvn依赖项:脱机-Dmaven.repo.local=/path 在/path和更高版本中保存所有依赖项 mvn-o-Dmaven.repo.local=/path 使用相同的工件 这是一个公平的解决方案,但需要大量存储(或维护该存储的版本控制存储库) 我正在寻找一个更优雅的解决方案,只使用工件名称和版本,而不是实际的文件。我看到了dependency:list和dependency:tree-mojos,它们显示了所使用的依赖项,但是有没有一种方法可以告诉maven使用这个列表作为输入来避免更新工件标记maven工件,以便以后重新打包确切的输出,maven,Maven,我正在寻找一种方法来标记maven用于重新打包战争的工件 由于我使用的一些依赖项取决于版本的范围,工件可能会随着时间的推移而变化,我希望能够重新发布web应用程序的特定版本(例如,当需要热修复程序时) 经过一些研究,我发现我可以使用 mvn依赖项:脱机-Dmaven.repo.local=/path 在/path和更高版本中保存所有依赖项 mvn-o-Dmaven.repo.local=/path 使用相同的工件 这是一个公平的解决方案,但需要大量存储(或维护该存储的版本控制存储库) 我正在寻找
谢谢你不是真的只是在找一个好朋友吗?是的,如果你想要同一个工件的一系列版本,你就要付出存储的代价(幸运的是现在还不算太坏)。我已经在使用内部maven存储库,但我不明白它如何帮助我,因为它也会随着时间的推移而更新。你说的更新是什么意思?旧的文物仍然会在那里,除非你特别清理它们?旧工件应该有不同的版本号。同样,也不是不重要的是,您应该在发布时解析您的范围,因为您不想重新发布具有不同依赖关系的相同代码……什么是“您应该在发布时解析您的范围”?这可能就是我问题的答案。用过一段时间了。从纸面上看,这似乎很理想,但却与我们背道而驰:有些工具很难通过所有可能的依赖路径(没有范围,路径就简单得多)。还有一些版本也有范围,因此与较新版本的依赖项不兼容。发布插件应该能够,但是当我们尝试这个(几年前)时,它是不可靠的。我们完全摆脱了靶场。