Загрузите зависимость Maven2 из нестандартного макета хранилища - PullRequest
0 голосов
/ 01 марта 2010

Мне нужно скачать файл из нестандартного макета хранилища.

Стандартный макет хранилища - groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>, однако мне нужно скачать следующий файл:

http://hudson.myserver.com:10000/repo/ocp-services/schemas/trunk/201/archive/schemas/dist/schemas.jar

, где ocp-services - это, фактически, groupId, схемы - это artifactId, а 201 - версия.

Как мне добавить зависимость к этому файлу и загрузить его в мой проект и локальный репозиторий?

Это хранилище файлов Hudson, если это поможет, но третьим лицам так трудно заставить их изменить любое местоположение.

Ответы [ 2 ]

1 голос
/ 01 марта 2010

Один из вариантов - зарегистрировать пользовательскую реализацию ArtifactRepositoryLayout и объявить репозиторий с использованием этого пользовательского макета. Я никогда не делал этого, но это должно быть возможно, проверьте это сообщение в блоге .

Второй вариант - настроить Maven для прохождения через своего рода прокси-сервер (например, сервлет) и переписать URL-адрес на лету для этой конкретной зависимости.

Боюсь, что в обоих случаях Maven будет жаловаться на отсутствие метаданных (« Зависимость в Maven - это не просто файл JAR », см. 3.5.5. Управление зависимостями Maven ) потому что репозиторий файлов hudson просто , а не репозиторий Maven. Может быть, это может быть обработано программно, хотя. Но, как я уже сказал, я никогда этого не делал.

Третий вариант - попросить проект создать JAR-файл, который вам нужен deploy (в смысле maven). Это было бы, конечно, лучшим решением.

Последний вариант - просто загрузить этот JAR-файл и установить его вручную в локальном хранилище. Если это вариант, пойти на это.

0 голосов
/ 02 марта 2010

Вы пытались добавить это в ваш pom.xml:

<dependencies>
            <dependency>
                <groupId>ocp-services</groupId>
                <artifactId>schemas</artifactId>
                <version>201</version>
                <type>jar</type>
            </dependency>
        </dependencies>

или если это не работает, как говорит Паскаль, установите его вручную

...