Ответ 1
У меня есть настройка nexus
для зеркалирования моего локального репозитория maven (в ~/.m2/repository.
). Поскольку этот пост по-прежнему посещают многие люди, я думаю, что было бы полезно для других, если бы я как я настроил nexus
как диспетчер хранилища. Эта процедура отлично работает для меня в Ubuntu 12.04
. Вот он -
1. Загрузите nexus-2.11.1-01-bundle.tar.gz или последнюю версию nexus ОСС.
2. Извлеките файл tar в свой домашний каталог
$ tar -xvf nexus-2.11.1-01-bundle.tar.gz
Теперь вы получите две директории - nexus-2.11.1-01
и sonatype-work
в своем домашнем каталоге.
3. Скопируйте эти два каталога в каталог /usr/local/
(их можно скопировать в другое место) -
$ cp -r nexus-2.11.1-01 /usr/local/
$ cp -r sonatype-work /usr/local/
Файлы исполняемого файла/конфигурации, связанные с nexus, хранятся в каталоге nexus-2.11.1-01
, а файл jar, указанный в pom.xml
, хранится в каталоге sonatype-work
.
Эти файлы jar являются зеркалами вашего ~/.m2/repository
. В первый раз вы выдаете команду mvn package
, тогда все jar
хранятся здесь. После этого, когда вы выдаете mvn package
снова, все банки загружаются из репозитория nexus вместо загрузки из центрального репозитория.
4. Перейдите в каталог /usr/local/
-
$ cd /usr/local/
5. Создайте ссылку на nexus-2.11.1-01
-
$ sudo ln -s nexus-2.7.0-06 nexus
6. Теперь для запуска типа нексуса в терминале -
$ bash nexus/bin/nexus console
Здесь nexus прилагается к консоли. Если вы закроете консоль, сервер nexus будет прерван. Когда вы пытаетесь запустить nexus для серверной машины Ubuntu, вы можете использовать экран .
Примечание.. При попытке запустить nexus с помощью приведенной выше команды могут возникнуть две проблемы. Если вы не обнаружили никаких проблем, пропустите следующие 2 шага (шаг 7 и 8).
7. Первая проблема может возникнуть из-за недостаточного разрешения. Прочтите сообщение об ошибке и выполните необходимые действия. Но как быстрое решение вы можете это сделать -
$ sudo chmod -R 777 nexus-2.11.1-01/
$ sudo chmod -R 777 sonatype-work/
8. Если вы используете любую версию jdk
ниже java 7, чем может отображаться следующее сообщение об ошибке -
обертка | Запуск JVM... обертки | JVM вышел во время загрузки выражение. jvm 1 | Исключение в потоке "main" java.lang.UnsupportedClassVersionError: org/sonatype/nexus/bootstrap/jsw/JswLauncher: Неподдерживаемый major.minor версия 51.0
В этом случае используйте jdk7 для запуска команды, упомянутой в шаге 6. В ubuntu ее довольно легко. Предполагая, что у вас есть два jdk - jdk6 и jdk7. Ваш проект работает на jdk6. Тогда только для работы с nexus вы можете сделать это с вашего терминала (при условии, что ваш каталог jdk7 в /usr/lib/jvm/jdk1.7.0_45
) -
$ export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
$ export PATH=$JAVA_HOME/bin:$PATH
9. Теперь в браузере введите адрес - http://localhost:8081/nexus/. Если шаг 1 - 6 (если произошли ошибки, а затем шаги с 1 по 8), вы можете успешно найти экран входа в систему. Имя пользователя по умолчанию - admin, а пароль - admin123
10. Остановить связь. Просто закройте терминал или нажмите Ctrl + C на шаге 6. В каталоге ~/.m2
создайте пустой файл с именем - settings.xml
. Скопируйте следующий контент в этот settings.xml
файл -
<settings>
<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>
11. И добавьте следующие строки в проект pom.xml
file -
<distributionManagement>
<snapshotRepository>
<id>my-snapshots</id>
<name>My internal repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>my-releases</id>
<name>My internal repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
</distributionManagement>