Запуск Maven и Sonatype Nexus в автономном режиме без подключения к интернету - PullRequest
4 голосов
/ 09 января 2012

Я пытаюсь настроить среду maven с помощью Nexus, чтобы maven загружал свои артефакты из локального репозитория Nexus.Машина, на которой установлены Maven и Nexus, не имеет подключения к Интернету по соображениям безопасности.

У меня есть аналогичная конфигурация на моей рабочей станции, которая имеет подключение к Интернету.Я установил Maven и Nexus на обеих машинах.Я также обновил свой локальный файл настроек maven в ~ m2 / settings.xml, как показано ниже:

<?xml version="1.0" encoding="UTF-8"?>
<settings 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/settings-1.0.0.xsd">
  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
  <proxies></proxies>
  <servers></servers>
  <pluginGroups></pluginGroups>
  <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>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

Я запустил простую «установку mvn» на защищенном сервере, и он пожаловался на отсутствие зависимостей.Это ожидается, потому что я не загружал и не загружал никаких артефактов в хранилище.

Я бы хотел загрузить артефакты с моей локальной рабочей станции, сжать их, а затем загрузить в репозиторий Nexus на защищенном компьютере.Я запустил 'mvn install' на своей локальной рабочей станции, и все было загружено.Теперь мне нужно скопировать хранилище на локальной рабочей станции на защищенный сервер.

Согласно документации Nexus, папка $HOME/sonatype-work является местом хранения.

  • Является ли эта папка единственной папкой, которую мне нужно скопировать на защищенный сервер для копирования хранилища?
  • Есть ли другие файлы, о которых мне нужно беспокоиться?например, файлы конфигурации?
  • Я заметил, что по умолчанию Nexus отключает удаленные репозитории.Означает ли это, что если я оставлю все как есть, мне не нужно ничего делать, чтобы предотвратить загрузку чего-либо из центрального хранилища.

Заранее спасибо.

1 Ответ

3 голосов
/ 10 января 2012

Можно загрузить содержимое вашего локального репозитория в область хранения сервера Nexus.Вам может потребоваться переиндексировать или восстановить метаданные репозиториев (задачи, которые можно вызывать через графический интерфейс Nexus).

Однако .... Я бы порекомендовал вам рассмотреть альтернативное решение, которое в конечном итоге приведет к меньшемуобслуживание.

Профессиональная версия Nexus имеет функцию комплект поставки , которая позволяет создавать репозитории, содержимое которых контролируется правилами или основывается на эталонной сборке.

Откройте брандмауэр, чтобы только Nexus имел доступ к Интернету.позволяет вам предоставить контролируемый разработчиком доступ к любому стороннему репозиторию Nexus.

...