Как загрузить плагин Maven в хранилище Nexus? - PullRequest
7 голосов
/ 19 января 2012

Я хочу загрузить свой пользовательский плагин maven в репозиторий Nexus.

Моя проблема в том, что когда я загружаю свой плагин в nexus через веб-интерфейс, как обычная зависимость, maven не может его найти:

Плагин com.huawei: maven-project-version-plugin: 1.0 или одна из его зависимостей не может быть решена: не удалось прочитать дескриптор артефакта для com.huawei: maven-project-version-plugin: jar: 1.0: Не удалось найти com.mycompany: maven-project-version-plugin: pom: 1.0 в http://localhost:8081/nexus/content/groups/public был кэширован в локальном хранилище, разрешение не будет повторно предпринято, пока не истечет интервал обновления нексуса или принудительные обновления-> [Помощь 1]

Но когда я устанавливаю свой плагин в локальное хранилище maven (не nexus) через командную строку, все в порядке.

Итак, в чем разница междуустановить пользовательский плагин maven и установить артефакты "не плагин"?Есть какие-нибудь хитрости?

Мои настройки.xml:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

Ответы [ 2 ]

8 голосов
/ 20 января 2012

Проблема была решена.Ну, я не знаю как, но сегодня все это работа.Я думаю, что проблема была в кеше Nexus.Я просто удалил свой размещенный репозиторий и создал его снова.Возможно, есть менее радикальные методы, но я их не знаю =) Удалите артефакт, а затем просто «истекает кэш» в моем случае не поможет.

Ну, ответ на мой вопрос: нет никакогоотличается между установочным плагином и артефактом без плагинов в Nexus, кроме одного.Если вы выбираете GAV Definition: параметры GAV, вы должны выбрать «maven-plugin» в выпадающем списке «Packaging».

Я думаю, что нет необходимости писать пошаговую инструкцию, это очень просто.Просто выберите ваш размещенный репозиторий -> вкладка «Загрузка артефакта» и заполните необходимые поля.

4 голосов
/ 16 ноября 2012

Также добавьте, что вы также должны загрузить pom своего плагина Maven. Если вы этого не сделаете, Nexus автоматически сгенерирует тот, который не является правильным. то есть это будет просто базовый pom, состоящий из version, artifactID, package и groupID.

...