2011-02-09 3 views
3

У меня есть небольшая установка Java-проекта, которая будет постоянно строиться через сервер Hudson. Я бы хотел опубликовать артефакты сборки на сервере Artifactory как шаг после сборки, поэтому, естественно, я использую плагин Hudson-Artifactory, чтобы облегчить это. Локальная публикация работает очень хорошо - она ​​публикует два артефакта (как .jar-файлы), так и разрешенный файл ivy.xml, как и ожидалось. Однако, когда я запрашиваю сборку на сервере Hudson, публикуется только один из двух моих артефактов.Плагин Hudson не публикует все артефакты для Artifactory

Билд создает следующие артефакты:

ftpSvc.jar 
ftpSvc-lib.jar 

Мой файл ivy.xml выглядит следующим образом:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"> 

    <info organisation="esf" 
      status="integration" 
      module="ftpSvc" 
      revision="SNAPSHOT" /> 

    <publications> 
     <artifact name="ftpSvc" ext="jar"/> 
     <artifact name="ftpSvc-lib" ext="jar" type="lib" /> 
    </publications> 

    <!--list the dependencies of this project--> 
    <dependencies> 
     <dependency org="commons-net" name="commons-net" rev="1.3.0" /> 
    </dependencies> 
</ivy-module> 

Два артефакты четко называются в разделе <publications>. Цель сборки в моем файле build.xml выглядит следующим образом:

<target name="publish_local" description="publish artifacts locally"> 
    <echo>organisation: ${ivy.organisation}</echo> 
    <echo>module: ${ivy.module}</echo> 
    <echo>status: ${ivy.status}</echo> 
    <echo>revision: ${ivy.revision}</echo> 
    <echo>local dir: ${ivy.default.ivy.user.dir}</echo> 

    <ivy:publish 
     resolver="local" 
     update="true" 
     verwrite="true" 
     srcivypattern="${bundle.jar.dir}/ivy.xml" 
     artifactspattern="${bundle.jar.dir}/[artifact].[ext]" /> 
</target> 

В artifactspattern Хватает все определенные артефакты из каталога сборки - ничего фантазии здесь происходит. И, наконец, распознаватель цепь в моем файле ivysettings.xml выглядит следующим образом (имена серверов изменены, чтобы защитить невиновных):

<resolvers> 
    <chain name="main"> 
     <ibiblio name="main" m2compatible="true" root="http://my.server.employer.com:8080/artifactory/repo" /> 

     <filesystem name="local"> 
      <ivy pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/ivy-[revision].xml" /> 
      <artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
     </filesystem> 
    </chain> 
</resolvers> 

Это все довольно рутинный материал и, как уже упоминалось выше, местные публиковать работы прекрасные. Вот быстрый взгляд на выходе консоли, когда я строю через Eclipse:

publish_local: 
    [echo] organisation: esf 
    [echo] module: ftpSvc 
    [echo] status: integration 
    [echo] revision: SNAPSHOT 
    [echo] local dir: C:\Users\myusername\.ivy2 
[ivy:publish] :: publishing :: esf#ftpSvc 
[ivy:publish] published ftpSvc to C:\Users\myusername\.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.jar 
[ivy:publish] published ftpSvc-lib to C:\Users\myusername\.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-lib-SNAPSHOT.jar 
[ivy:publish] published ivy to C:\Users\myusername\.ivy2/local/esf/ftpSvc/SNAPSHOT/ivy-SNAPSHOT.xml 

Оба файлы .jar и разрешенное файл ivy.xml печататься, как и ожидалось. На моем сервере Хадсон, у меня есть настройки конфигурации Artifactory настроенные константы выглядит (опять же, некоторые детали были изменены, чтобы скрыть свою истинную идентичность супергероя):

Artifactory Сервер: http://my.server.employer.com:8080/artifactory
Target хранилище: target-repository
Ivy картина: [organisation]/[module]/[revision]ivy-[revision].xml
Артефакт картина: "[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"

Как вы можете видеть, плющ и узоры артефакта точно так же, как модели в моем местном распознаватель из моего файла ivysettings.xml. Таким образом, когда сборка запускается на сервере Hudson, я ожидаю, что те же самые артефакты будут опубликованы на моем сервере Artifactory.

Давайте посмотрим на вывод консоли из последней сборки на моем Hudson сервере:

publish_local: 
    [echo] organisation: esf 
    [echo] module: ftpSvc 
    [echo] status: integration 
    [echo] revision: SNAPSHOT 
    [echo] local dir: /usr/share/tomcat6/.ivy2 
[ivy:publish] :: publishing :: esf#ftpSvc 
Collecting Module information for module: ftpSvc 
Module location: /usr/share/tomcat6/.hudson/jobs/ftpSvc-ivy/workspace/trunk/out/jars/ftpSvc.jar 
[ivy:publish] published ftpSvc to /usr/share/tomcat6/.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.jar 
Collecting Module information for module: ftpSvc 
Module location: /usr/share/tomcat6/.hudson/jobs/ftpSvc-ivy/workspace/trunk/out/jars/ftpSvc-lib.jar 
[ivy:publish] published ftpSvc-lib to /usr/share/tomcat6/.ivy2/local/esf/ftpSvc/SNAPSHOT/ftpSvc-lib-SNAPSHOT.jar 
Collecting Module information for module: ftpSvc 
Module location: /tmp/ivy2450884590736960955.xml 
[ivy:publish] published ivy to /usr/share/tomcat6/.ivy2/local/esf/ftpSvc/SNAPSHOT/ivy-SNAPSHOT.xml 
Build finished triggered 
Deploying artifact: http://my.server.employer.com:8080/artifactory/target-repository/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.jar 
Deploying artifact: http://my.server.employer.com:8080/artifactory/target-repository/esf/ftpSvc/SNAPSHOT/ftpSvc-SNAPSHOT.xml 
Deploying build info to: http://my.server.employer.com.com:8080/artifactory/api/build 

Dubya»Ти Eff !? Опять же, локальная публикация работает очень хорошо, публикуя обе банки и файл ivy.xml в локальном/esf/ftpSvc/SNAPSHOT/каталоге на сервере Hudson. С другой стороны, плагин Artifactory полностью ошибочен. Он не только не может опубликовать одну из двух банок, но и неправильно переименовывает файл ivy.xml.

Есть ли там эксперты Hudson/Ivy/Artifactory, которые могут пролить свет на то, что здесь происходит? У меня есть несколько проектов, которые демонстрируют то же самое поведение. Было бы весьма полезно получить любую помощь в решении этой проблемы.

ответ

0

Эй, я не использовал этот плагин, но я хотел бы попробовать удалить тир из названия ftpSvc-lib и/или удаление type="lib" из его artifact элемента, просто чтобы посмотреть, что происходит.

0

У меня такая же проблема, что была заполнена ошибка JFrog Jira, ошибка была отмечена сегодня, но, как вы можете видеть в моих комментариях к Jira, я все еще смущен этой резолюцией.

https://issues.jfrog.org/jira/browse/IAP-26?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Если кто-то имеет представление о том, любой вход было бы здорово ...

Смежные вопросы