Maven выбирает самый старый снимок в Archiva — почему?

У меня есть проект A-parent со следующей структурой:

projectA-parent|
----------------|projectA
----------------|projectA-core
----------------|projectA-api

Модуль projectA просто определяет зависимости от ядра и API [1], поэтому я могу просто определить зависимость от projectA в других проектах, которым нужны и ядро, и API. Я разворачиваю проект в Archiva (1.4-M2), в репозиторий SNAPSHOT.

У меня есть еще один проект X, в котором я определяю зависимость от проекта A, и сегодня днем ​​цель "mvn compile" начала давать сбой из-за нерешенных проблем компиляции. После исследования с помощью «mvn dependency:tree» в этом проекте я обнаружил, что в проекте A зависимость от projectA-core была объявлена ​​​​как «среда выполнения». В то время как сегодня утром все было так, я выполнил несколько установок mvn, начиная с того, что область видимости «компилируется» (см. [1], где указано самое последнее определение pom).

Глядя на архив, я вижу следующие файлы для этого проекта (сокращенно):

projectA-0.0.7-20120712.084920-61-tests.jar
projectA-0.0.7-20120712.084920-61-tests.jar.md5
projectA-0.0.7-20120712.084920-61-tests.jar.sha1
projectA-0.0.7-20120712.084920-61.jar
projectA-0.0.7-20120712.084920-61.jar.md5
projectA-0.0.7-20120712.084920-61.jar.sha1
projectA-0.0.7-20120712.084920-61.pom
projectA-0.0.7-20120712.084920-61.pom.md5
projectA-0.0.7-20120712.084920-61.pom.sha1
projectA-0.0.7-20120712.172412-87-tests.jar
projectA-0.0.7-20120712.172412-87-tests.jar.md5
projectA-0.0.7-20120712.172412-87-tests.jar.sha1
projectA-0.0.7-20120712.172412-87.pom
projectA-0.0.7-20120712.172412-87.pom.md5
projectA-0.0.7-20120712.172412-87.pom.sha1
projectA-0.0.7-20120712.180733-90.pom
projectA-0.0.7-20120712.180733-90.pom.md5
projectA-0.0.7-20120712.180733-90.pom.sha1

Вот интересная часть: если я удалю проект A из моего локального .m2/репозитория, даже если я "mvn compile -U" я получу версию 08:49, а не 18:07! Это означает, что либо maven, либо archiva разрешают 1-й снимок дня, а не самый последний. Почему это так и как это решить?

[1]:

<dependencies>
        <dependency>
            <groupId>com.projectA</groupId>
            <artifactId>projectA-api</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.projectA</groupId>
            <artifactId>projectA-core</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
            <scope>runtime</scope>
        </dependency>
</dependencies>

person mmalmeida    schedule 12.07.2012    source источник


Ответы (1)


Какова упаковка вашего проектаA ("jar" или "pom"). Существует только артефакт 'jar' на 08:49.

Я полагаю, вы изменили упаковку на «pom». Таким образом, если вы объявляете библиотеку как зависимость в других проектах, вы должны установить <type>pom</type>.

person FrVaBe    schedule 12.07.2012
comment
Ого, теперь мне стыдно. Ты совершенно прав. Я забыл изменить тип зависимости в X на тип pom! - person mmalmeida; 13.07.2012