2013-09-12 5 views
0

Я установил экземпляр Apache Archiva как прокси-сервер для Maven Central и захватил моментальные снимки разработки. Мне удалось установить прокси-сервер, и я могу развернуть артефакты в хранилище снимков архива Archiva, но я не могу вытаскивать артефакты из хранилищ моментальных снимков для использования в других проектах.Проблема вытягивания зависимостей SNAPSHOT из хранилища моментальных снимков Archiva

Соответствующие части pom.xml (в зависимости от проекта)

<project> 
    <!-- Excluded detail --> 
    <dependency> 
    <groupId>uk.abc</groupId> 
    <artifactId>ABC</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <type>war</type> 
    </dependency> 
    <!-- Excluded detail --> 
    <distributionManagement> 
    <repository> 
     <id>archiva.snapshots</id> 
     <name>Snapshot Repository</name> 
     <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots</url> 
    </repository> 
    </distributionManagement> 
    <!-- Excluded detail --> 
</project> 

Моего ~/.m2/settings.xml

<settings> 
    <servers> 
    <server> 
     <id>archiva.snapshots</id> 
     <username>username</username> 
     <password>xxx</password> 
    </server> 
    <server> 
     <id>archiva.internal</id> 
     <username>username</username> 
     <password>xxx</password> 
    </server> 
    </servers> 
    <mirrors> 
    <mirror> 
     <id>archiva.internal</id> 
     <mirrorOf>central</mirrorOf> 
     <url>https://xxx.xxx.xxx.xxx/archiva/repository/internal</url> 
    </mirror> 
    <mirror> 
     <id>archiva.snapshots</id> 
     <mirrorOf>snapshots</mirrorOf> 
     <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots</url> 
    </mirror> 
    </mirrors> 
    <profiles> 
    <profile> 
     <id>default</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <repositories> 
      <repository> 
       <id>archiva.internal</id> 
       <name>Archiva Managed Internal Repository</name> 
       <url>https://xxx.xxx.xxx.xxx/archiva/repository/internal/</url> 
       <releases> 
       <enabled>true</enabled> 
       </releases> 
       <snapshots> 
       <enabled>false</enabled> 
       </snapshots> 
      </repository> 
      <repository> 
       <id>archiva.snapshots</id> 
       <name>Archiva Managed Internal Repository</name> 
       <url>https://xxx.xxx.xxx.xxx/archiva/repository/snapshots/</url> 
       <releases> 
       <enabled>false</enabled> 
       </releases> 
       <snapshots> 
       <enabled>true</enabled> 
       </snapshots> 
      </repository> 
     </repositories> 
    </profile> 
    </profiles> 
</settings> 

Когда я строй зависимого проекта, я не могу ссылаться на классах (доступ общественности).

Просто обратите внимание, что я могу просматривать репозиторий снимков, и я знаю, что файл войны есть.

Любые идеи?

ответ

1

Оказывается, что вы не можете использовать «военный» тип зависимостей и ожидать, чтобы иметь возможность ссылаться на содержащиеся классы. Однако вы можете создать дополнительную баночку (создать как войну и баночку), содержащий классы:

http://maven.apache.org/plugins/maven-war-plugin/faq.html#attached

Вы можете использование типа «банка» при трогании в зависимости ... в моем случае:

<dependency> 
    <groupId>uk.abc</groupId> 
    <artifactId>ABC</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <type>jar</type> 
</dependency> 

Я думаю, поэтому вопрос немного вводит в заблуждение ... зависимость вытаскивалась из Archiva, но не имела доступного типа.

0

Вы, вероятно, не активируя профиль правильно

перед профилем в settings.xml поставить что-то вроде

<activeProfiles> 
    <activeProfile>default</activeProfile> 
</activeProfiles> 

Помните this о activeByDefault

Этот профиль будет автоматически активен для всех сборок, если активирован другой профиль в том же POM u пойте один из ранее описанных методов. Все профили, которые активны по умолчанию , автоматически деактивируются, когда профиль в POM активирован в командной строке или через его конфигурацию активации.

, если вы хотите, чтобы подтвердить, если это вопрос, посмотрите на активных профилей, запустив help:active-profiles

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