Как добавить артефакт в локальный репозиторий maven, чтобы он правильно ссылался на свой собственный набор зависимостей? - PullRequest
1 голос
/ 09 сентября 2011

Я занимаюсь разработкой приложения, которое зависит от ряда устаревших файлов JAR, и я хочу, чтобы проект создавался прямо из системы контроля версий, при этом другим пользователям не нужно устанавливать эти JAR-файлы в своем локальном хранилище. Я не могу добавить их в корпоративный репозиторий, поэтому я создал репозиторий, который является локальным для этого проекта, и я добавил эти JAR-файлы в этот репозиторий с помощью maven-install-plugin: install-file и настроил запись репозитория в файле POM, чтобы он умеет искать в локальном репозитории.

Это работает именно так, как я хочу ... до определенного момента. Проблема в том, что большинство из этих устаревших JAR-файлов имеют свой собственный набор зависимостей. Я хотел бы, чтобы они работали так же, как и другие артефакты, которые имеют свой собственный набор зависимостей, чтобы maven мог разрешить все и включить все необходимые файлы, но я не могу найти способ сделать это с помощью любого maven-install-plugin: install опции файла (или любые другие команды / плагины maven). Я довольно новичок в Maven, так что я, вероятно, просто не знаю об этом.

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

Может кто-нибудь дать мне подсказку?

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

Цель maven-install-plugin:install-file имеет атрибут pomFile .Вы можете использовать это, чтобы указать файл POM для вашего старого фляги.Вы должны создать файл POM, который указывает на все зависимости по artifactId в разделе <dependencies>.Если у вас есть удаленное хранилище Nexus, вы можете использовать экран администратора для хранилища, чтобы развернуть jar.

1 голос
/ 09 сентября 2011

После того, как вы отредактируете POM-файлы в репозитории, специфичном для вашего проекта, разместите его как репозиторий Maven с помощью Maven Repository Manager (например, sonatype nexus). Добавьте ваш проект nexus repo в качестве одного из репозиториев maven в проекте pom.xml, как показано ниже

<repositories>
    <repository>
        <id>my-project-mvn-repo</id>
        <name>my-project-mvn-repo</name>
        <url>http://<your project maven repo URL here></url>
    </repository>
    <repositories>

Теперь все разработчики должны иметь возможность делать сборку. Устаревшие файлы JAR POM содержат зависимости. Maven должен позаботиться об автоматическом извлечении зависимых jar-файлов в рабочее пространство разработчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...