Загрузка всех зависимостей maven в каталог не в репозитории?



Я начал конвертировать свой проект в maven, потому что мне нужно было использовать библиотеку, которая была распространена в двоичной форме только над maven, но после того, как я слишком долго бил головой о стену, я решил перестать вредить себе и просто использовать Ant. Я хотел бы просто загрузить Maven jar и все его транзитивные зависимости в каталог по моему выбору, чтобы я мог просто проверить их в своем SCM, поскольку я обычно наслаждаюсь и снова становлюсь блаженным разработчиком.

Любые идеи, как это сделать сделать это легко?

904   6  

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 ответ, я нахожу учебник по копирование зависимостей проекта, всего:

  1. открыть проект pom.xml файл и найти это:

    <project>
      [...]
      <build>
        <plugins>
          ...
        </plugins>
      </build>
      [...]
    </project>
    
  2. Чем заменить <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>
    
  3. и вызовите 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

    Ничего не найдено.