使用maven将第三方包上传到我自己的maven仓库服务器

Upload third party packages to my own maven repository server using maven

我正在尝试将第三方包(例如 junit )上传到我自己的存储库服务器。

我做了以下事情:
1)在~/.m2/settings.xml

中添加了以下内容
<server>
      <id>thirdparty</id>
      <privateKey></privateKey>
      <passphrase></passphrase>
</server>

2) 访问了一个已经缓存在我的本地机器上 ~/.m2/repository/junit/junit/3.8.1

的包 3)发出以下命令将包上传到我的远程存储库

mvn deploy -DaltDeploymentRepository=thirdparty::default::http://localhost:8000/mavenrepository/thirdparty

出现以下错误:

ERROR] The goal you specified requires a project to execute but there is no POM in this directory 
(/Users/myuser/.m2/repository/junit/junit/3.8.1). Please verify you invoked Maven from the correct directory. -> [Help 1]
org.apache.maven.lifecycle.MissingProjectException: The goal you specified requires a project to execute but there is no POM in this directory (/Users/myuser/.m2/repository/junit/junit/3.8.1). Please verify you invoked Maven from the correct directory.
    at 

这个目录下没有pom.xml,但是有一个叫junit-3.8的文件。1.pom

如果我将 junit-3.8.1.pom 重命名为 pom.xml,然后发出上面的部署命令,那么一切正常,maven 能够将包部署到我的存储库。

为什么我的命令不起作用?我们如何在不重命名文件的情况下将包部署到我的远程存储库?我是否发布了错误的命令来部署包?

默认情况下,maven 期望 pom 文件名为 pom.xml。要使用其他名称,请使用 -f 选项,如下所示:

mvn deploy -DaltDeploymentRepository=thirdparty::default::http://localhost:8000/mavenrepository/thirdparty -f junit-3.8.1-pom.xml