Хадсон не может найти местный репозиторий Maven (в том числе сторонние банки) - PullRequest
0 голосов
/ 10 апреля 2010

Я создал проект Maven2. Все отлично работает Теперь я создал проект Hudson, чтобы сделать возможными ночные сборки. Хадсон должен проверить текущее состояние проекта из хранилища Subversion, запустить тесты, собрать проект и развернуть все в хранилище. Мой репозиторий Subversion содержит мой проект Maven2, но в моем локальном репозитории Maven (.m2) нет файлов jar. Вероятно, поэтому Хадсон заканчивает с ошибкой, говоря, что некоторые сторонние банки не доступны. Здесь я должен сказать, что в моем локальном репозитории Maven (.m2) есть несколько jar-файлов, которых нет ни в одном репозитории Maven. Следовательно, нет возможности скачать эти банки. Имеет ли Хадсон возможность подключения к локальному хранилищу .m2? Или есть другой способ сделать эти файлы JAR доступными для Гудзона?

Заранее спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 25 июня 2010

Да, есть относительно простой / быстрый способ сделать это. Предположим, вы используете класс драйвера Microsoft JDBC: sqljdbc4-3.0.jar Этот JAR не существует ни в одном хранилище из-за лицензионных ограничений.

Вы можете использовать область действия system в зависимости, чтобы указать maven получить файл из соответствующей папки вашего проекта:

<dependency>
  <groupId>com.microsoft</groupId>
  <artifactId>sqljdbc4</artifactId>
  <version>3.0</version>
  <scope>system</scope>
  <systemPath>${basedir}/libs/sqljdbc4-3.0.jar</systemPath>
</dependency>

Обратите внимание, что groupId и artifactId только что составлены мной, они не актуальны, но обязательны.

Надеюсь, это поможет.

0 голосов
/ 10 апреля 2010

есть ли другой способ сделать эти файлы JAR доступными для Хадсона?

Это очень грязно , но вы можете заменить "локальный репозиторий Hudson" (то есть локальный репозиторий пользователя, под которым работает Hudson) на "ваш локальный репозиторий". И я действительно имею в виду заменить здесь, т.е. удалить $HUDSON_HOME/.m2/repository и скопировать $YOUR_USER_HOME/.m2/repository ( не объединять ).

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

...