我正在建立一个基于apache Archiva的存储库存档的CI系统。在那里部署文件的各种技术中,最有希望的一种似乎是使用maven(而不是需要太多curl
调用的REST api和不适合自动化的Web接口)。
似乎对于部署工件,例如构建工件的zip存档,在maven中有以下插件:deploy:deploy-file。但是,尝试简单地调用该命令没有给我任何结果。
我之前没有和maven合作过;目前我们的构建是通过在源目录上调用cmake
,然后从shell脚本调用make
来完成的。我需要添加什么,并且必须能够使用maven来部署生成的人工制品?
是否有必要创建一个pom文件?如果是这样,我需要添加哪些步骤?
答案 0 :(得分:1)
您可以使用deploy:deploy-file
上传这些工件,默认情况下会为您生成POM。你需要的是:
settings.xml
文件,其中包含<server>
元素,其中包含通过HTTP部署到Archiva的凭据这里有更多信息:http://maven.apache.org/plugins/maven-deploy-plugin/usage.html。如果要生成POM,则需要提供groupId
(不同的工件分组),artifactId
(不带版本的文件名),version
(工件版本)和{{ 1}}(通常是扩展名,例如packaging
)参数以及zip
,repositoryId
和url
所需的参数。
但是,不需要使用Maven或REST API - 您也可以使用简单的HTTP PUT调用:
file
您也可以使用scp,ftp等将文件直接放在Archiva文件系统中。请注意,在这种情况下,您必须等待Archiva的预定扫描才能将其取出。
答案 1 :(得分:0)
Maven需要一个类似WebDAV的存储库(参见Nexus,Artifactory)来部署其工件(主要是jar,war,ear或assemblies。 查看here了解如何使用Archiva设置Maven。
答案 2 :(得分:0)
是的,有必要在maven中使用pom.xml,而且很明显你需要在你的机器上安装maven。最低限度,您需要提供工件ID(如jar的名称),组ID(如用于识别存储库中工件位置的包)和版本。默认情况下,包结构将为jar,除非您将其称为war / ear / pom。如果要使用任何依赖项,可以在依赖项部分中提及它们。
以下是所需的最小pom。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
</project>
Here是熟悉maven的快速教程。