Используете Maven просто принести jar библиотеки
мы используем ANT для нашего процесса сборки и не планируем менять это в ближайшем будущем.
можно ли использовать Maven для просто принести общие файлы jar с открытым исходным кодом (например, Log4J, SWT, JFace) и поместить их в нужное место нашего проекта, поэтому нам не нужно хранить их в нашем управлении версиями - предпочтительнее без создания типичного Maven-кэша в домашнем каталоге?
4 ответов
НЕТ НЕТ НЕТ все!
Если вы используете Ant, лучший способ использовать репозитории Maven для загрузки зависимостей jar-использовать Айви С Ant. Для этого и существует Айви.
установка Плюща и начало работы с текущими проектами Ant просто сделать. Он работает с Nexus и Artifactory, если вы используете их в качестве локальных репозиториев Maven.
посмотри Айви. Это, вероятно, именно то, что вы хотеть.
в вариации org.жизнь.ответ java, Я бы не делал mvn install
.
вместо этого, в pom.xml я бы добавил следующий бит:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
теперь вам просто нужно сделать mvn generate-sources
, что намного быстрее, чем полный mvn install
и все зависимости будут скопированы в указанный каталог.
о Кстати, разве это не то, что Apache Ivy о? Расширение Ant, чтобы понять управление зависимостями Maven?
возможно, вы должны использовать maven-ant-задачи.
в частности dependencies
задачи Ant. При этой установке Установка Maven не требуется.
<?xml version="1.0" encoding="UTF-8"?>
<project
name="download-dependency"
basedir="."
default="download-dependency"
xmlns:artifact="antlib:org.apache.maven.artifact.ant"
>
<target name="download-dependency">
... define properties ...
<taskdef
resource="org/apache/maven/artifact/ant/antlib.xml"
uri="antlib:org.apache.maven.artifact.ant"
/>
<artifact:dependencies>
<localRepository path="${local-repo.dir}"/>
<remoteRepository id="central" url="${repository-uri}"/>
<dependency
groupId="${groupId}"
artifactId="${artifactId}"
version="${version}"
type="${type}"
classifier="${classifier}"
scope="runtime"
/>
</artifact:dependencies>
</target>
</project>
только бинарными, вы должны проверить ваш проект maven-ant-tasks.jar
.
на самом деле в нашем проекте я использовал Sonatype Nexus ( документация ) Maven repository manager для централизации доступа к различным репозиториям и даже поддерживать некоторые двоичные файлы, уникальные для наших окружающая среда. С помощью Nexus я просто получаю maven-ant-tasks.jar
С задача из известного URL. Вам не нужно использовать Nexus, но он значительно ускоряет сборки, потому что он кэширует двоичные файлы рядом с машинами вашего разработчика.
Ivy делает именно это,
когда он bootstraps itself:
http://ant.apache.org/ivy/history/latest-milestone/samples/build.xml
<property name="ivy.install.version" value="2.0.0-beta1"/>
<property name="ivy.jar.dir" value="lib"/>
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar"/>
<target name="resolve" unless="skip.download">
<mkdir dir="${ivy.jar.dir}"/>
<echo message="installing ivy..."/>
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true"/>
</target>