Як вручну розгорнути артефакти в OSS 3 Nexus Repository Manager


76

Після встановлення Nexus Repository Manager OSS 3 я не бачу можливості Artifact Uploadзавантажувати артефакти через веб-сторінку.

У Nexus Repository Manager OSS 2.13 є можливість зробити цю операцію.

Будь-хто може показати мені спосіб завантаження артефактів до розміщеного сховища в Nexus 3?

EDIT : З версії 3.9.0 ця функція реалізована.


1
У своїй відповіді тут я пояснив обидва підходи - для http та https.
grajsek

17
чому б вони взагалі залишили цей важливий елемент функціональності?
Kees de Kooter

8
Оскільки графічний інтерфейс для завантаження все ще не є частиною Nexus 3, ми створили полегшене рішення для надання відсутнього інтерфейсу. Ви можете розмістити html-сторінку в необробленому сховищі вашого екземпляра Nexus3, і коли ви переходите на цю сторінку з браузера, вона надасть графічний інтерфейс для завантаження, подібний до того, що в Nexus2. Проект можна знайти на GitHub з детальною документацією. Випущена версія на момент даної відповіді також підтримує стиль GAV та завантаження в необробленому режимі.
Іштван Рабель,

Відповіді:


26

Це реалізовано в Nexus з версії 3.9.0.

  • Увійти
  • Виберіть Завантажити

введіть тут опис зображення

  • Заповніть форму та завантажте Артефакт

введіть тут опис зображення


У нас було встановлено 3.7, і матриця функцій казала, що це повинно існувати (3.10 наразі діє). Я збожеволів, намагаючись зрозуміти, як це було реалізовано. Ця відповідь була дуже корисною. Я б проголосував за вас 10 разів, якби міг.
Джон Глассман

Репозиторії Bower (розміщені) не мають функції завантаження: /
Arkadi

@tobias яке типове значення для розширення?
Варун Верма

Розширення імені файлу @Varun Verma, наприклад, jar
17гао

71

Я використовую файл розгортання maven.

mvn deploy:deploy-file -DgroupId=my.group.id \
    -DartifactId=my-artifact-id \
    -Dversion=1.0.0.1 \
    -Dpackaging=jar \
    -Dfile=foo.jar \
    -DgeneratePom=true \
    -DrepositoryId=my-repo \
    -Durl=http://my-nexus-server.com:8081/repository/maven-releases/

ОНОВЛЕННЯ: Як зазначено в коментарях із використанням лапок у url, причина NoSuchElementException

але я додав конфігурацію сервера у своєму maven (~ / .m2 / settings.xml).

<servers>
  <server>
    <id>my-repo</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>

Список літератури:

Maven Apache - керівництво сторонніми банками


Чи потрібно щось вмикати чи встановлювати для такого розгортання? При спробі з’являються такі помилки: 29 листопада 2016 р. 11:27:31 org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec виконує ІНФОРМАЦІЮ: виняток вводу-виводу (java.net.SocketException ) спійманий під час обробки запиту на {} -> 127.0.0.1:8081 : Поламана труба тощо ...
Ерей Тунсер

Ні. Тільки чистий maven. У вас є проксі? Можливо, вам потрібно проігнорувати localhost / 127.0.0.1 там / або цей ip та порт правильні? Я буду шукати інші припущення, щоб вирішити це виняток.
bpedroso

1
@ErayTuncer У моєму прикладі я перевірив за допомогою nexus 3. Чи можете ви пройти повну трасування стека?
bpedroso

7
Щоб позбутися NoSuchElementException: видаліть лапки зі значення перемикача -Durl. У мене пішло 2 години пошуку.
SandorRacz

1
не забудьте обернути цей фрагмент "серверів" в елемент "<settings> </settings>", якщо ви створюєте новий файл settings.xml. інакше цей розділ буде ігноруватися мовчки.
Алекс


26

Ви можете завантажувати артефакти за допомогою їх власних можливостей публікації (наприклад, maven deploy, npm публікація).

Ви також можете завантажувати артефакти до "необроблених" сховищ за допомогою простого запиту на завивання, наприклад

curl --fail -u admin:admin123 --upload-file foo.jar 'http://my-nexus-server.com:8081/repository/my-raw-repo/'

2
Так, я можу це зробити, mvn deployі це працює чудово, але я не розумів, що вони видалили Artifact Uploadопцію з останньої Nexus.
Павел Гловач

1
@ PawełGłowacz Випуск Jira щодо функціональності завантаження в 3.x знаходиться тут: issues.sonatype.org/browse/NEXUS-10121
mvreijn

Прочитайте man-файл curl про перемикач --fail - його не можна захистити
кадуцей

3

Моя команда створила інструмент командного рядка для завантаження артефактів до сховища nexus 3.x, можливо, це буде корисно для вас - Maven Artifacts Uploader


1
Але тільки для користувачів Windows?
TOUDIdel

1
На даний момент так
Рон Бадур

1

Моя команда використовує Gradle та Nexus OSS 3.5.2 ,

Я знайшов рішення : завантажте артифакти з локахосту (я перевірив документацію Nexus і не знайшов нічого про завантаження артефактів з папок) => У мене є спільний каталог (використовуйте Apache httpd ) і підключений до створеного нового сховища проксі Nexus. Тепер, коли я хочу додати власні артефакти я можу завантажити їх у спільний каталог на віддаленому сервері.

Можливо, хтось вважає моє рішення корисним: введіть тут опис зображення

Моє запитання тут : чи можна розгорнути артефакти з локальної папки в Sonatype Nexus Repository Manager 3.x


1

Для Windows:

mvn deploy:deploy-file -DgroupId=joda-time -DartifactId=joda-time -Dversion=2.7 -Dpackaging=jar -Dfile=joda-time-2.7.jar 
-DgeneratePom=true -DrepositoryId=[Your ID] -Durl=[YourURL]

0

Для використання mvn deploy: deploy-file, потрібно додати ~. / M2 / settings.xml

<settings>
  <servers>
    <server>
      <id>nexus-repo</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
</settings>

команда:

mvn deploy:deploy-file -DgroupId=com.example \
                                       -DartifactId=my-app \
                                       -Dversion=2.0.0 \
                                       -Dpackaging=jar \
                                       -Dfile=my-app.jar \
                                       -DgeneratePom=true \
                                       -DrepositoryId=nexus-repo \
                                       -Durl=http://localhost:8081/repository/maven-releases/
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.