我需要将项目移交给第三方。该项目使用Maven进行依赖关系管理,我们安装了Nexus存储库管理器。
我认为使用dependency:go-offline插件/目标(例如
)生成一个包含项目所需的所有依赖项的存储库会很容易mvn dependency:go-offline -Dmaven.repo.local=c:/handOver/.m2/repository
此命令按预期创建存储库。我将此存储库复制到目标计算机,并将 localRepository (settings.xml)设置为存储库文件夹。
尝试在目标计算机上构建项目不幸失败。构建过程会抱怨缺少工件,尽管它们位于maven日志中可以找到的路径上(即使使用 -o / offline开关)。
我们的Nexus服务器似乎仍有关系。因此,我们删除了存储库中的所有 _maven.repositories 文件,但这也没有帮助。
我想知道我的移交存储库的方法是否有效以及我做错了什么或错过了什么。我担心它与远程存储库设置有关。
如果有人能指出我如何将maven存储库移交给其他人,那将是一个很好的帮助。
来自日志的
(应该解析的jar可以在记录的路径下找到(C:\ handOver.m2 \ repository {myPathToJar}),但最后无法解析。
[DEBUG] Using local repository at C:\handOver\.m2\repository
...
[DEBUG] Verifying availability of C:\handOver\.m2\repository\{myPathToJar}
from [central (https://repo.maven.apache.org/maven2, default, releases)]
...
[ERROR] Failed to execute goal on project {myProject}: Could not resolve dependencies for project {myProject}:
The following artifacts could not be resolved: {myDependency}: Cannot access central (https://repo.maven.
apache.org/maven2) in offline mode and the artifact {myDependency} has not been downloaded from it be
fore. -> [Help 1]
答案 0 :(得分:1)
dependency:go-offline
错过了一些传递依赖。
最有效的是mvn -Dmaven.repo.local=local-repo clean install
。
然后,您可以将文件夹local-repo压缩到其他人,并且在将local-repo.zip解压缩到$ HOME / .m2 / repository之后,他们将能够运行mvn -o clean install
。
如果您希望他们能够运行其他目标,只需替换“clean install”。