我正在尝试将第三方软件包(例如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就可以将软件包部署到我的存储库。
为什么我的命令不起作用?如何在不重命名文件的情况下将软件包部署到我的远程存储库?我发出了错误的命令来部署软件包吗?
答案 0 :(得分:1)
默认情况下,maven希望pom文件名为pom.xml。要使用其他名称,请使用-f选项,如下所示:
mvn deploy -DaltDeploymentRepository=thirdparty::default::http://localhost:8000/mavenrepository/thirdparty -f junit-3.8.1-pom.xml