使用maven使用自定义货车将第三方软件包部署到我的内部仓库

use*_*796 8 gradle maven-3 maven wagon

如何使用自己的旅行车将第三方软件包部署到我的远程存储库?

例如,我可以使用以下命令部署第三方软件包而无需更改pom.xml.

mvn deploy -DaltDeploymentRepository=thirdparty::default::http://myremoserver.com/mavenrepository/thirdparty -f thirpartpomfile -Dmaven.install.skip=true -Dmaven.test.skip=true
Run Code Online (Sandbox Code Playgroud)

我怎么能告诉maven使用特定的旅行车来部署包?我可以传递一些命令行参数或向settings.xml添加一些条目吗?

我如何为gradle做同样的事情?

Von*_*onC 2

将第 3 方 JAR 部署到远程存储库的指南”仅提到:

首先,wagon-provider( wagon-ftpwagon-file等..) 必须放置到您的${maven.home}/lib.

这足以让您mvn deploy-file与其他协议一起使用。
您自己的马车应该复制到那里(${maven.home}/lib)。

请参阅Maven 部署文件插件常见问题解答

如果您使用deploy:deploy-file目标并遇到此错误:

Error deploying artifact: Unsupported Protocol: 'ftp': 
  Cannot find wagon which supports the requested protocol: ftp"
Run Code Online (Sandbox Code Playgroud)

然后,您需要将适当的货车提供商放置在%M2_HOME%/lib中。

如果错误描述是这样的:

Error deploying artifact: Unsupported Protocol: 'ftp': 
  Cannot find wagon which supports the requested protocol: 
    ftp org/apache/commons/net/ftp/FTP"
Run Code Online (Sandbox Code Playgroud)

然后你需要把commons-net罐子放进去%M2_HOME%/lib

使用 Gradle,您可以执行相同的操作,但使用Maven 插件,将部署文件委托给 maven,因为Maven Deployer 插件可能不支持自定义协议。