Проверьте, существует ли артефакт или зависимость в частном хранилище - PullRequest
0 голосов
/ 23 мая 2018

Это мой POM-файл, который генерирует JAR-артефакт , и он хранится в частном репозитории с Nexus Repository

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.home.mac</groupId>
  <artifactId>hyper-dev</artifactId>
  <version>0.0.1</version>
  <build>
    <sourceDirectory>src</sourceDirectory>

    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>  
  </build>

  <dependencies>
    <dependency>
        <groupId>org.home.mac</groupId>
        <artifactId>hyper-test-linux</artifactId>
        <version>0.3.5</version>
    </dependency>
  </dependencies>
</project>

Я хочу проверить две вещи:

  • Если артефакт , который я собираюсь установить hyper-dev-0.0.1 , существует в моем личном mavenрепозиторий.
  • Если в моем личном репозитории maven существует зависимость с artifactID: hyper-test-linux-0.3.5 .

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Для Nexus2 (используя, например, org.jboss.security:jboss-negotiation-toolkit:3.0.2.Final)

curl -I -s -u admin: admin123 http://mynexusserver/service/local/repositories/mymavenrepo/content/org/jboss/security/jboss-negotiation-toolkit/3.0.2.Final/jboss-negotiation-toolkit-3.0.2.Final.war |grep HTTP

Будет выведено «HTTP / 1.1 200 OK», если найдено, «HTTP / 1.1 404 Not Found», если не найдено

0 голосов
/ 25 мая 2018

Вы можете использовать Nexus 'Rest Api , чтобы проверить, существует ли артефакт.

Например, URL

http://<your private nexus server>:8081/service/rest/beta/search/assets?group=org.home.mac&name=hyper-dev&version=0.0.1&maven.extension=jar&maven.classifier

покажет вам, если артефакт hyper-dev в версии 0.0.1 доступно в вашем личном Nexus.

Если вы хотите автоматизировать процесс, вы можете использовать инструмент командной строки, например wget или curl, чтобы получить доступ к Rest Api,как показано в документе, связанном выше.

Примечание : Я хотел бы повторить комментарий khmarbaise , который обычно не позволяет загрузить выпущенный выпущенный артефакт для Nexus, если он уже существует в хранилище.Если вы хотите снова загрузить его, вам нужно увеличить версию и создать новый артефакт.Обновление существующих артефактов нежелательно, поскольку Maven предполагает, что загруженный артефакт никогда не изменится, и кэширует их локально на каждой машине.

Снимок артефакты могут быть обновлены, но вы спрашивали об выпущенных артефактах.

...