2016-01-23 3 views
1

Это следить за пост In maven project How to download the library in source/binary, mentioned in the <parent> tag in POM file?Maven: Как загрузить родительскую банку в пользовательское местоположение?

<project> 
<parent> 
<groupId>org.jboss.weld</groupId> 
<artifactId>weld-api-bom</artifactId> 
<version>1.0</version> 
<relativePath>../bom/pom.xml</relativePath> 
</parent> 

<modelVersion>4.0.0</modelVersion> 
<artifactId>my-module</artifactId> 

<dependencies> 
<dependency> 
    <groupId>javax.el</groupId> 
    <artifactId>el-api</artifactId> 
    <optional>true</optional> 
</dependency> 
</dependencies> 

Как скачать родительский баночку в другое место?

+0

Это было бы так легко с Gradle! Раздел 34.3 https://docs.gradle.org/current/userguide/publishing_maven.html – JimLohse

+1

Можно ли загрузить все зависимые и родительские банки с помощью градиента? –

+0

Да, очень кратко в файле с именем build.gradle вы используете 'apply plugin: 'maven'', и есть раздел, где вы объявляете доступ к MavelLocal и MavenCentral следующим образом:' repositories { mavenLocal(); mavenCentral(); } ' Тогда, например, если вы хотите включить Spark, это однострочный, нажмите на вкладку Spark здесь: http://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10/1.6. 0 – JimLohse

ответ

1

relativePath будет искать только pom в этом месте, и если он не найден, он будет искать его в репозитории. На самом деле это не будет загружать pom в это место. Если вы хотите создать свой проект, просто убедитесь, что родительский pom доступен в репозитории.

Если то, что вы ищете на самом деле скачать POM после того, как было найдено, попробуйте использовать Maven зависимостей плагин, добавив в ваш ПОМ:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.10</version> 
     <configuration> 
     <artifact>org.jboss.weld:weld-api-bom:1.0:pom</artifact> 
     <destination>../bom/pom.xml</destination> 
     </configuration> 
     <executions> 
     <execution> 
     <goals> 
      <goal>get</goal> 
     </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Затем в командной строке:

mvn dependency:get 

Обратите внимание, что артефакт и назначение указаны в конфигурации плагина.

Если вы не хотите, чтобы изменить POM, вы можете попробовать:

mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -Dartifact=org.jboss.weld:weld-api-bom:1.0:pom -Ddest=../bom/pom.xml 
+0

Есть ли какая-нибудь команда для автоматизации загрузки родительской банки без значительного редактирования файла pom? –

+0

Я обновил ответ на этот случай – ecarlos

+0

Проверьте это http://stackoverflow.com/questions/34701900/how-to-download-the-souce-of-jars-to-custom-location-in-maven?noredirect1 # comment57244107_34701900 он автоматически загружает все зависимые. Как мудрый, не упоминая конкретное имя артефакта, мы можем загрузить все родительские банки? –