2013-10-08 2 views
0

У меня есть профиль pom.xml, который вызывает сборку Maven (2.2.1) для создания пользовательского артефакта, который мы загрузим в сторонний инструмент оценки уязвимостей. Конфигурация очень проста - раздела ее необходимость этоMaven сборка: единичная структура потерь при Jenkins

<dependencySet> 
    <includes> 
     <include>${project.groupId}:*:jar</include> 
    </include> 
    <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping> 
</dependencySet> 

<dependencySet> 
    <outputDirectory>lib</outputDirectory> 
    <includes/> 
    <excludes> 
     <exclude>${project.groupId}:*</exclude> 
    </excludes> 
</dependencySet> 

То есть - каталог верхнего уровня имеет свои банки, отделенные от информации о версии, и все зависимости находятся в директории/Lib и включает в себя информацию о версии.

Это довольно просто, и это работает на моем рабочем столе.

На сервере Jenkins все захлопнуто в верхнюю директорию и информация о версии лишена.

Моя первая мысль заключалась в том, что может возникнуть проблема с $ {project.groupId} на сервере. Это кажется маловероятным, но это очевидная вещь для проверки. К сожалению, проблема остается.

Это не потому, что это tar.gz - я вижу такое же поведение с .zip?

Любые идеи?

+0

сравнить версии плагина сборки, которые используются локально и на jenkins (используйте параметр -X, чтобы увидеть вывод отладки). У вас, скорее всего, разные версии плагина. Просто убедитесь, что они оба используют одну и ту же версию плагина, и вам должно быть хорошо идти. –

+0

Чтобы развернуть комментарий пользователя, добавьте шаг предварительной сборки для печати всех переменных среды. Вы можете быть удивлены всеми переменными среды jenkins, которые будут clobber maven poms, особенно фильтрация ресурсов! – Electrawn

+0

Спасибо. Сегодня утром мы обнаружили это самостоятельно. (Примечание для себя: SO не отправляет почту по комментариям, только ответы! Не забудьте проверить сайт!) – bgiles

ответ

0

Наконец-то мы выяснили проблему. Файл pom.xml не содержит явной версии для maven-assembly-plugin, и я не заметил его, так как все работало.

Позже, после того, как мы нажали на сервер сборки, он потерпел неудачу. Мы проверили, что версии maven совпали, но не думали проверять версии плагина, так как для всех других зависимостей требуются явные значения версии. Как только мы решили добавить версию (2.2-бета-4, чтобы начать), она сработала.

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