使用maven将第三方软件包上传到我自己的maven存储库服务器

时间:2017-05-03 18:29:58

标签: maven gradle build maven-3 maven-central

我正在尝试将第三方软件包(例如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,然后发出上面的deploy命令,那么一切正常,maven就可以将软件包部署到我的存储库。

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

1 个答案:

答案 0 :(得分:1)

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

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