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

标签 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.13)发出以下命令将软件包上传到我的远程存储库
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能够将软件包部署到我的存储库中。

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

最佳答案

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

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

关于maven - 使用Maven将第三方软件包上传到我自己的Maven存储库服务器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43767548/

相关文章:

java - Gradle:正则表达式查找并替换特定文本周围的空格

Android Studio 不会将应用程序推送到手机

maven - 无法使用 Maven 从 .avsc 编译和创建 .avro 文件

java - 当 Maven 中显示以下 Artifact 无法解析(尽管它们位于 Maven 缓存中)时,这是什么意思?

java - Vertx默认配置文件

gradle - 为什么此gradle脚本给我一个错误?

android - 为 google play 服务设置 gradle 文件

docker build with Ubuntu 18.04 image 在提示输入键盘的原产国后挂起

java - 自动构建和部署 Java Web 应用程序

使用 Maven 构建的 jar 中缺少 Java 类