Загрузка всех зависимостей maven в каталог не в репозитории?
Я начал конвертировать свой проект в maven, потому что мне нужно было использовать библиотеку, которая была распространена в двоичной форме только над maven, но после того, как я слишком долго бил головой о стену, я решил перестать вредить себе и просто использовать Ant. Я хотел бы просто загрузить Maven jar и все его транзитивные зависимости в каталог по моему выбору, чтобы я мог просто проверить их в своем SCM, поскольку я обычно наслаждаюсь и снова становлюсь блаженным разработчиком.
Любые идеи, как это сделать сделать это легко?
6 ответов:
плагин зависимости maven потенциально может решить вашу проблему.
Если у вас
pomсозданный со всеми указанными зависимостями проекта, все, что вам нужно будет сделать, это запуститьmvn dependency:copy-dependenciesи вы найдетеtarget/dependenciesпапка заполнена всеми зависимостями, включая транзитивные.
создать Айви.xml файл для перечисления зависимостей вашего проекта:
<ivy-module version="2.0"> <info organisation="org.demo" module="demo"/> <configurations defaultconfmapping="default"/> <dependencies> <dependency org="commons-lang" name="commons-lang" rev="2.6"/> .. </dependencies> </ivy-module>загрузка этих банок и их транзитивных зависимостей теперь может быть выполнена одним из двух способов.
плющ можно запустить как программы командной строки. Следующий пример будет загружен в локальный каталог "lib":
java -jar ivy-2.2.0.jar -ivy ivy.xml -retrieve "lib/[artifact].[ext]"ANT build
плющ лучше всего использовать при интеграции в ваш муравей сборки. Этот следующий пример целевого загрузит JAR-файлы в локальную директорию lib и генерирует HTML-отчет для анализа зависимостей.
<target name="retrieve" description="Retrieve dependencies locally"> <ivy:retrieve pattern="${lib.dir}/[artifact].[ext]"/> <ivy:report todir="${report.dir}" graph="false"/> </target>
на основе @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's зависимости от текущего каталога, гдеpom.xmlжизнь.
я, наконец, понял, как использовать 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
добавить jars в проект java по пути сборки - > настроить путь сборки - > библиотеки - > добавить JARs..
Я нашел следующую команду
mvn dependency:copy-dependencies -Dclassifier=sourcesздесь maven.apache.org
пожалуйста, проверьте, если у вас есть некоторые конфигурационные файлы в Как
settings.xml. Эти файлы переопределяет настройки из.m2папка и из-за этого, папка репозитория от.m2может быть не виден или отброшен.
Comments