Развернуть все зависимости проекта в удаленном хранилище - PullRequest
1 голос
/ 08 сентября 2011

У нас есть новый друг по проекту, и мы хотим установить проект в его среду. Но в хранилище maven слишком много зависимостей, которых нет. Так что Maven стал бесполезным. Мы установили сервер архива для установки наших артефактов там, но мы не хотим развертывать все эти зависимости по одной (не только проект jar self, все зависимости). Есть ли автоматическое решение для этой ситуации?

Заранее спасибо.

1 Ответ

4 голосов
/ 08 сентября 2011

Изначально, если вы настроите свои проекты pom.xml и добавите:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>localrepo</outputDirectory>
                        <useRepositoryLayout>true</useRepositoryLayout>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

и запустите mvn package , это должно создать копию ваших зависимостей в хранилищеформат каталога внутри каталога localrepo ( Я пытался использовать параметры командной строки для зависимость: копии-зависимости , но это не сработало бы для меня ).Теперь закомментируйте вышесказанное из вашего pom.xml , поскольку вам, вероятно, он больше не нужен.

Я никогда не использовал Archiva, но я думаю, что в этот момент вы могли бы установить localrepo Файлы репозитория на локальном веб-сервере и настройте сервер Archiva для его зеркалирования.

В качестве альтернативы, если вы хотите произвести минимальную установку для конечного пользователя (а размер дистрибутива не былпроблема) вы можете включить этот каталог localrepo в свой дистрибутив и предоставить maven ссылку на него, добавив в ваш pom.xml :

<repositories>
    <repository>
        <id>local-repo</id>
        <name>local-repo</name>
        <url>file://${basedir}/localrepo</url>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>ignore</checksumPolicy>
            <updatePolicy>always</updatePolicy>
        </releases>
    </repository>
</repositories>  

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

Я не нахожу ничего, что могло бы отговорить новых пользователей от Maven быстрее, чем мои попытки объяснить все, что mvn install: install-file palaver, который обычнонеобходимо установить банки сторонних производителей (как бы я ни был увлечен Maven).

...