среда, 24 марта 2010 г.

Импорт стороннего проекта в хранилище артефактов Maven

Для проектов, артефакты которых не доступны в публичных хранилищах, можно хранить артефакты в собственном хранилище. Собственно задача делится на два этапа - изготовление артефакта и деплой его в хранилище.

Изготовление одиночного артефакта вполне можно выполнить и вручную, равно как и задеплоить его в хранилище используя mvn deploy:deploy-file.

Для регулярного импорта стороннего проекта гораздо удобнее создать собственный проект импорта.

Для примера могу привести проект который создает артефакт - архив tar.gz, используя последнюю версию кода доступную на github.com и деплоит его в хранилище в локальной сети.

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
local.test.import
githubtest
pom
1.0
githubtest


scm:git:git://github.com/<путь к проекту>.git
http://github.com/<адрес>





org.apache.maven.plugins
maven-scm-plugin
1.3


checkout

generate-sources


checkout








org.apache.maven.plugins
maven-assembly-plugin
2.2-beta-5



assembly.xml



${project.build.directory}/checkout




make-assembly
package

single






maven-deploy-plugin


true



deploy-assembly

deploy


deploy-file



releases
http://beast-server/nexus/content/repositories/releases


${project.build.directory}/${project.artifactId}-${project.version}.tar.gz


tar.gz
${project.groupId}
${project.artifactId}
${project.version}








releases
http://beast-server/nexus/content/repositories/releases


snapshots
http://beast-server/nexus/content/repositories/snapshots





assembly.xml содержить простой набор правил - cоздать архив tar.gz в который включить все что находится в текущей директории.

xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0
http://maven.apache.org/xsd/assembly-1.1.0.xsd">


tar.gz

false


./





Итог - Пример проекта который создает артефакт из исходников и деплоит его в хранилище.

Комментариев нет: