编辑:好的......所以我已经收集到SVN不应该用于此...这是有道理的,我想(为什么版本个别文件的版本应该是一个单独的罐子?)。
因此,我们应该使用内部服务器来托管像Nexus(等)这样的存储库管理工具,并通过http访问它以下拉并输出依赖项。我们现在正在SVN中保留我们的项目。部署的标准是什么?依赖关系进入Maven。项目进入SVN。我们应该忽略dist和build文件夹吗?我们的WAR文件将从哪里部署?
旧问题(后代)
我是Maven的新手,并且不知道 jack 。我正在尝试评估它以了解它将如何处理我们的Java开发。
我希望在我们的SVN服务器中有一个Maven存储库,以便可以使用NetBeans 6.7从那里下载依赖项。我无法在许多google和stackoverflow搜索中找到如何执行此操作。
这里的最佳做法是什么?我想我们想要使用svn + ssh下载依赖项,但大多数在线似乎都指向使用http。
用伟大的东西填满我的大脑!
答案 0 :(得分:5)
我强烈建议不要这样做。 Maven工件不属于SCM服务器。您应该考虑使用像Nexus这样的存储库管理器来存储您的工件。请参阅此处以查看主repository managers的比较。
说完了。如果您决定使用Subversion来托管您的工件。有关使用wagon scm部署到Subversion存储库的信息,请参阅此question。
如果您想了解有关Maven的更多信息,请查看Maven: the definitive guide。
Netbeans有一个Maven插件可以管理依赖项。 This article列出了Maven和Netbeans的一些最佳实践。
根据您更新的问题进行更新。如何处理自己的罐子:
Maven有一个deploy phase,它会将您的工件发布到远程存储库。您需要配置pom的distributionManagement部分,并在settings.xml中提供appropriate credentials以允许部署发生。通常,您将在服务器上为自己的工件设置一个离散的逻辑存储库,以使它们与第三方工件隔离。 Nexus book为在Nexus上配置存储库提供了一些很好的指导。请特别参阅Adopting a Repository Manager部分。
如果您已正确配置项目,请运行mvn deploy
,所有阶段都将运行,包括部署阶段,您的工件将发布到存储库,供团队其他成员使用/公司
如果您需要限制对存储库的访问,您可以配置对存储库的访问控制,以便只有经过身份验证的用户才能访问这些工件(对于Nexus,请参阅本书的Managing Security部分以获取指导)。
值得注意的是,您可以使用Artifactory或Archiva作为Nexus进行大致相同的事情(或多或少),我已经包含了Nexus引用,因为我更喜欢它,并且文档非常好。
答案 1 :(得分:1)
不要将它们存储在SVN中。
我会做两件事来确保你没有太多头痛: