Сборка Gradle разрешает снимки Maven2 иначе, чем сборка Maven - PullRequest
0 голосов
/ 25 февраля 2020

Я использую Nexus OSS 3.x и у меня есть пользовательская библиотека, которую я развертываю в своем хранилище Nexus с помощью плагина nexus-staging-maven-plugin. Я развернул снимок, используя цель развертывания maven. Затем я могу включить этот снимок в качестве зависимости в pom. xml другого проекта Maven, и правильный моментальный снимок с меткой времени будет разрешен соответствующим образом. Проблема в том, что когда я сейчас пытаюсь включить эту зависимость моментального снимка в сборку Gradle, Gradle пытается найти неправильную версию. Я заметил в метаданных maven. xml, который создан, Gradle фактически пытается разрешить my-lib-2.0.0-20200225.163947-14.jar, в то время как моя сборка Maven правильно разрешает my-lib-2.0.0- 20200225.163945-13.jar. Вот что находится в файле maven-metadata. xml:

<metadata modelVersion="1.1.0">
   <groupId>com.mycompany</groupId>
   <artifactId>my-lib</artifactId>
   <version>2.0.0-SNAPSHOT</version>
   <versioning>
      <snapshot>
         <timestamp>20200225.163947</timestamp>
         <buildNumber>14</buildNumber>
      </snapshot>
      <lastUpdated>20200225163947</lastUpdated>
      <snapshotVersions>
         <snapshotVersion>
            <classifier>sources</classifier>
            <extension>jar</extension>
            <value>2.0.0-20200225.163945-13</value>
            <updated>20200225163947</updated>
         </snapshotVersion>
         <snapshotVersion>
            <extension>jar</extension>
            <value>2.0.0-20200225.163945-13</value>
            <updated>20200225163947</updated>
         </snapshotVersion>
         <snapshotVersion>
            <extension>pom</extension>
            <value>2.0.0-20200225.163945-13</value>
            <updated>20200225163947</updated>
         </snapshotVersion>
      </snapshotVersions>
   </versioning>
</metadata>

1 Ответ

0 голосов
/ 25 февраля 2020

Я понял, в чем проблема. Оказывается, причиной был nexus-staging-maven-plugin, который я использовал. Я удалил плагин из моего pom. xml (показан ниже) и по умолчанию установил стандартный maven-deploy-plugin, и он разрешил несоответствия версий (также показаны ниже)

Это плагин I использовал. Удаление его решило мои проблемы.

<plugin>
  <groupId>org.sonatype.plugins</groupId>
  <artifactId>nexus-staging-maven-plugin</artifactId>
  <version>${nexus-staging-plugin.version}</version>
  <executions>
    <execution>
      <id>default-deploy</id>
      <phase>deploy</phase>
      <goals>
        <goal>deploy</goal>
      </goals>
    </execution>
  </executions>
</plugin>

После удаления вышеуказанного плагина nexus Speci c я теперь получаю согласованные метки времени и номера сборки на снимках:

<metadata modelVersion="1.1.0">
   <groupId>com.mycompany</groupId>
   <artifactId>my-lib</artifactId>
   <version>2.0.0-SNAPSHOT</version>
   <versioning>
      <snapshot>
         <timestamp>20200225.174453</timestamp>
         <buildNumber>22</buildNumber>
      </snapshot>
      <lastUpdated>20200225174453</lastUpdated>
      <snapshotVersions>
         <snapshotVersion>
            <extension>jar</extension>
            <value>2.0.0-20200225.174453-22</value>
            <updated>20200225174453</updated>
         </snapshotVersion>
         <snapshotVersion>
            <extension>pom</extension>
            <value>2.0.0-20200225.174453-22</value>
            <updated>20200225174453</updated>
         </snapshotVersion>
         <snapshotVersion>
            <classifier>sources</classifier>
            <extension>jar</extension>
            <value>2.0.0-20200225.174453-22</value>
            <updated>20200225174453</updated>
         </snapshotVersion>
      </snapshotVersions>
   </versioning>
</metadata>
...