2016-03-09 2 views
0

У меня есть хранилище, созданное на Artifactory для моих проектов Maven. Я объявил это репо в теге <repositories> своих параметров settings.xml для одного из проектов, я создал зависимость от другого prooject (Say projectA) в моем POM для версии моментального снимка. Для этого проекта A существует только артефакт POM на Artifactory, а не в банке. Тем не менее, когда я собираю свой POM, Maven пытается загрузить банку для этого проекта и не может сказать, что он не смог его найти.Maven ищет банку, которой нет в репозитории

В скором времени вставлю точные данные POM, error, settings.xml и repo. Любая идея, что может быть неправильным?

+1

Какой тип артефакта вы в зависимости от? если он имеет тип JAR (который по умолчанию), конечно, Maven попытается загрузить его. –

+0

В моем поле для упаковки я ничего не определил. Это то, о чем вы просите? – AshwiniR

+1

Это означает, что зависимость на самом деле или тип jar правильно? Если вы заявили о зависимости от артефакта jar, в чем проблема для Maven, пытающегося его загрузить? –

ответ

3

Если вы хотите иметь зависимость типа pom, вам необходимо явно объявить его. Например:

<dependency> 
    <groupId>com.mycompany</groupId> 
    <artifactId>my-artifact</artifactId> 
    <version>1.0</version> 
    <type>pom</type> 
</dependency> 

Если тип не указан, Maven будет использовать значение по умолчанию, которое является jar.

Редактировать с OP: Просто предостережение, я использую IntelliJ, и хотя у меня были настройки прямо на месте, он использовал некоторые старые (возможно, кэшированные) settings.xml. Я побежал из командной строки, и он поднял правильный.

+0

Я согласен с тем, что, когда дело доходит до взаимодействия с Maven для создания вашего окончательного пакета, я всегда предпочитаю командную строку вместо любой IDE - таким образом у вас есть больше гарантий того, что сборка будет работать на любой другой машине (в основном на машине где выполняется CI). –

Смежные вопросы