Deploy Plugin 有两个基本功能。在大多数项目构建中,构建生命周期的部署阶段是使用deploy:deploy mojo 实现的。此外,可以使用deploy:deploy-file mojo将未使用 Maven 构建的工件添加到任何远程存储库。
在大多数情况下,当您调用默认构建生命周期的部署阶段时,会调用此 mojo。
要启用此 mojo 功能,您必须包含一个有效的<distributionManagement/>部分 POM,它至少提供一个<repository/>定义您的工件的远程存储库位置。要将快照工件与发布工件分开,您还可以指定<snapshotRepository/>位置。最后,要部署项目网站,您还必须在此处指定<site/>部分。还需要注意的是,此部分可以继承,允许您为一组相关项目指定一次部署位置。
如果您的存储库是安全的,您可能还需要配置您的settings.xml文件以定义提供身份验证信息的相应<server/>条目。服务器条目使用它们的<id/>元素匹配到 distributionManagement 的不同部分。例如,您的项目可能有一个类似于以下内容的 distributionManagement 部分:
[...] <distributionManagement> <repository> <id>internal.repo</id> <name>MyCo Internal Repository</name> <url>Host to Company Repository</url> </repository> </distributionManagement> [...]
在这种情况下,您可以在settings.xml中指定服务器定义,以便同时为这两个存储库提供身份验证信息。您的服务器部分可能如下所示:
[...] <server> <id>internal.repo</id> <username>maven</username> <password>foobar</password> </server> [...]
有关如何避免在settings.xml中使用明文密码的说明,请参阅有关密码加密的文章。
正确配置存储库部署信息后,部署项目的工件只需要调用构建的部署阶段:
mvn deploy
deploy:deploy-file mojo 主要用于部署工件,这些工件不是由 Maven 构建的。项目的开发团队可能会也可能不会为工件提供 POM,并且在某些情况下,您可能希望将工件部署到内部远程存储库。部署文件 mojo 提供了涵盖所有这些用例的功能,并为动态生成 POM 提供了广泛的可配置性。此外,您可以指定存储库使用的布局。部署文件 mojo 的完整使用说明可以描述为:
mvn deploy:deploy-file -Durl=file://C:\m2-repo \ -DrepositoryId=some.id \ -Dfile=your-artifact-1.0.jar \ [-DpomFile=your-pom.xml] \ [-DgroupId=org.some.group] \ [-DartifactId=your-artifact] \ [-Dversion=1.0] \ [-Dpackaging=jar] \ [-Dclassifier=test] \ [-DgeneratePom=true] \ [-DgeneratePom.description="My Project Description"] \ [-DrepositoryLayout=legacy]
如果未以某种方式指定以下所需信息,则目标将失败: