Я начал преобразовывать свой проект в maven, потому что мне нужно было использовать библиотеку, которая была распространена в двоичной форме только по maven, но после того, как я слишком долго бился головой о стену, я решил перестать причинять себе вред и просто использовать Муравей. Я хотел бы, чтобы maven загрузил jar-файл и все его транзитивные зависимости в каталог по моему выбору, чтобы я мог просто проверить их в своем SCM, поскольку обычно мне нравится, и снова быть блаженным разработчиком.
Любые идеи, как сделать это легко?
Вопрос
Загрузка всех зависимостей maven в каталог НЕ в репозитории?
- Подумайте об использовании Ivy и получите необходимое вам транзитивное управление зависимостями с помощью Ant, которому вы доверяете. Или попробуйте использовать структуру каталогов Maven. Dave Newton 26.10.2011
- Вы пробовали Ivy? Tomasz Nurkiewicz 26.10.2011
- Нет, но я потратил все свое терпение на переключение на этом этапе. Может быть в следующий раз. Я хочу вернуться к кодированию. Можно ли это сделать с помощью maven? chubbsondubs 27.10.2011
- Возможный дубликат Как использовать Maven pom для загрузки файлов jar только в определенный каталог? Vadzim 14.02.2017
Ответы
Ответ 1 · рейтинг 289 · Raghuram
maven dependency plugin потенциально может решить вашу проблему. .
Если у вас есть pom со всеми указанными зависимостями вашего проекта, все, что вам нужно сделать, это запустить
mvn dependency:copy-dependencies
и вы найдете папку target/dependencies, заполненную всеми зависимостями, включая транзитивные.
Добавление ответа Густаво снизу: Чтобы загрузить источники зависимости, вы можете использовать
mvn dependency:copy-dependencies -Dclassifier=sources
(через документ подключаемого модуля зависимостей Apache Maven ).
Ответ 2 · рейтинг 12 · Baked Inhalf
Я наконец понял, как использовать Maven. В Eclipse создайте новый проект Maven.
Скачайте Maven, распакуйте архив, добавьте папку /bin в путь.
Подтвердите установку из командной строки, запустив mvn -v (распечатает версию и путь установки java)
Перейдите в корневую папку проекта (где находится pom.xml) и запустите:
mvn dependency:copy-dependencies
Все jar-файлы загружаются в /target/dependency.
Чтобы установить другой выходной каталог:
mvn dependency:copy-dependencies -DoutputDirectory="c:\temp"
Теперь можно повторно использовать этот Maven-проект для всех загрузок зависимостей, изменив файл pom.xml
Добавить jar-файлы в java-проект по пути сборки -> настроить путь сборки -> библиотеки -> добавить файлы JAR ..
Ответ 3 · рейтинг 9 · user
Основываясь на ответе @Raghuram, я нашел руководство по Копирование зависимостей проекта. Просто:
Откройте файл вашего проекта
pom.xmlи найдите это:<project> [...] <build> <plugins> ... </plugins> </build> [...] </project>Затем замените
<plugins> ... </plugins>на:<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins>И вызовите maven в командной строке
mvn dependency:copy-dependencies
По завершении он создаст папку target/dependency во всех зависимостях jar от текущего каталога, в котором находится pom.xml.
Ответ 4 · рейтинг 5 · Gustavo
Я нашел следующую команду
mvn dependency:copy-dependencies -Dclassifier=sources
здесь maven.apache.org
Ответ 5 · рейтинг 3 · MagGGG
Пожалуйста, проверьте, есть ли у вас в каталоге ${MAVEN_HOME}/conf файлы конфигурации, например settings.xml. Эти файлы переопределяют настройки из папки .m2, и из-за этого папка репозитория из .m2 может быть не видна или удалена.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- C # WebClient Загрузка Zip повреждает его
- Почему IIS7 игнорирует мой заголовок типа содержимого, когда я использую ASP.NET для потоковой передачи
- Ajax-запрос на загрузку файла excel показывает мне усеченный ответ
- Чтобы обновить UIProgressView для загрузки нескольких файлов (как использовать делегата)?
- Инструменты для создания зависимостей модулей для Delphi
- Зависимости сборки проекта Visual Studio без ссылок?