正常Maven的设置应该是这样的:
项目 - >本地资源库 - >私有远程仓库 - >公共远程仓库
项目:在最简单的情况下,你的项目包括源文件和一个配置文件(pom.xml)。该项目可能依赖于像junit这样的第三方库。库的jar文件不存储在项目目录中,只存储需要的信息。
mvn package
此命令创建一个罐子您的项目的地方在您的项目的target/
文件夹。
本地库:这是存储在本地机器上的maven仓库。它通常驻留在~/.m2/repository/
。您在项目中使用的每个依赖项都将存储在此存储库中。编译你的项目时,maven将使用这个位置的jar文件。
mvn install
此命令创建一个jar文件,并将其复制到你的本地库:~/.m2/repository/groupId/artifactId/version/project.jar
。现在,您可以在不同的独立项目中使用此jar作为依赖项,但只能使用您的机器。
私有远程存储库:大多数情况下,这是您公司网络中的Nexus。该服务器允许跨开发人员共享构建项目。您的TeamCity服务器构建该jar并将其复制到nexus服务器。除此之外,nexus服务器像代理一样工作,例如开发人员需要junit-4.1.1.jar,因此服务器会在公共远程存储库中查找并缓存它。
mvn deploy
此命令建立一个罐子,它的每一个开发人员发送到您的Nexus服务器(“您的私人远程仓库”)后,您的公司网络内部可以访问罐子。
公共远程存储库:这些是互联网上可用的存储库,其中包含多个jar文件,例如, maven.codehaus.org
摘要:
如果你打电话mvn compile
行家会在你的本地库的依赖关系。如果maven找不到它们,它会询问(private/public)远程仓库,并将这些文件复制到本地仓库。
您不应该通过网络同步本地存储库,因为此类存储库不针对此类使用,并且可能会以某种模糊的方式破解。