我是maven的新手。
给定企业级Java应用程序。源代码由subversion管理。
据我所知,一旦我对代码进行了修饰,我应该能够在5年后对其进行编译并获得相同的结果,但我有点担心maven是否可以100%准确地处理它:
在我之前的另一边,我们利用了svn:external - 我们在svn中为所有第3个产品(jar)提供了一个特殊目录(供应商分支)。对于每个产品及其特定版本,都有一个专用目录。应用程序代码使用svn external从供应商分支中提取具体jar。
在这个配置中,我知道所有在源代码控制下的罐子,我将能够在5年后重建我的应用程序,并使用与5年前相同的罐子包装。
我错过了什么吗?
答案 0 :(得分:1)
是的,它有风险,但有办法解决这个问题。
要真正解决此问题,您可以使用Nexus或Archiva设置自己的存储库(另请参阅SO: Best enterprise repository tool for Maven 2?)。如果您已启动并运行自己的索引,则可以完全控制在未来几年内保护依赖关系库。当然,它可能仍会破裂:)
如果您经营的是小型企业,我认为改变流程和建立自己的镜像会有什么好处(增值是什么?)。 svn:externals
可能不是那么复杂的方法,但我个人也不认为它很糟糕。
我还可以补充一点,Maven不仅仅是依赖管理。当你让Maven更多地控制你的项目时,会有越来越多的协同作用,所以如果你最终切换到Maven,那么还要依赖它的其他功能(更容易更新库,自动下载源,结构约定,插件架构,等)。