Maven не разрешает правильные зависимости SNAPSHOT - PullRequest
1 голос
/ 02 апреля 2019

Я буду быстрым. Моя версия Maven 3.5.0. Я использую некоторые библиотеки в своих веб-приложениях. Библиотеки устанавливаются отдельно и развертываются в экземпляре артефакта.

У меня есть следующий пом (часть):

<project>
  ....
  <properties>
    <process.domain.common.version>0.0.1-SNAPSHOT</process.domain.common.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.intersoft</groupId>
        <artifactId>process.domain.common</artifactId>
        <version>${process.domain.common.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.intersoft</groupId>
      <artifactId>process.domain.common</artifactId>
    </dependency>
  </dependencies>
</project>

но в библиотеках Maven помещает эту библиотеку:

process.domain.common-0.0.1-20190319.151024-3.jar

вместо этого:

process.domain.common-0.0.1-SNAPSHOT.jar

Мои зависимости разрешены из артефакта. Почему Maven помещает эту временную библиотеку с именем временной метки вместо SNAPSHOT? Такое поведение не происходит во всех разрешенных библиотеках.

Ответы [ 3 ]

1 голос
/ 06 июня 2019

Наконец-то я нашел решение.

Решение состоит в том, чтобы добавить плагин maven war в ваш pom.xml проекта войны:

<properties>
   <version.war.plugin>2.5</version.war.plugin>
</properties>

<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>${version.war.plugin}</version>
                <configuration>
                    <warName>${project.artifactId}</warName>
                </configuration>
            </plugin>
        </plugins>
    </build>

Доказательство:

WEB-INF / lib без плагина войны:

WEB-INF / lib с плагином войны:

0 голосов
/ 02 апреля 2019

Если вы создаете снимок локально, это просто сборка с именем 0.0.1-SNAPSHOT. Если вы развернете его в Artifactory, он получит внутренний номер версии временной метки, такой как упомянутый вами.

Когда вы загрузите его снова, Artifactory выдаст вам последнюю метку времени.

Итак, локально у вас иногда есть версия -SNAPSHOT, а иногда версия с меткой времени. Точное правило, как назван артефакт в войне, мне неясно, но, если у вас есть версия с меткой времени или нет, с вами все будет в порядке.

0 голосов
/ 02 апреля 2019

Maven добавляет текущую дату к снимкам, чтобы сравнить версию снимка из вашего локального хранилища и версию снимка из удаленного хранилища и оценить, требуется ли загрузка удаленного хранилища, потому что загрузка сегодня 0.0.1-SNAPSHOT может дать файл, отличный отзагружая это вчера или завтра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...