Maven: Команда для оновлення сховища після додавання залежності до POM


256

Я додав нову залежність до мого POM.

Чи є проста команда, яку я можу запустити, щоб завантажити цю залежність у своє сховище?


Для тих, хто шукає, як це зробити у проекті Spring Boot: використовуйте mvnwдля виклику шару обгортки. Команди на цій сторінці працюють з нею.
G_V

Відповіді:


178

mvn install(або mvn package) завжди працюватиме.

Ви можете використовувати mvn compileдля завантаження залежностей від часу компіляції або mvn testдля залежності часу компіляції та тестування, але я віддаю перевагу тому, що завжди працює.


2
Дякую, я також виявив, що додавши його до пом у STS, автоматично завантажуватиме його для вас.
JJ180

15
@Andrew Spencer відповідь більш точна - розбирайтеся mvn dependency:xxxлише з залежностями і не робіть ніяких додаткових речей - і про те, в чому питання.
botchniaque

Часом 'mvn пакет' може не оновлювати залежності. Зі мною траплялося не один раз. У таких випадках потрібно запускати 'mvn залежність: вирішити'
Binita Bharati

1
@BinitaBharati, ви можете додати -U до командного рядка Maven для примусового завантаження залежностей. Це корисно, якщо Maven не завантажує оновлену залежність через час очікування кешу.
BamaPookie

1
@Kishan Задайте нове запитання. Покажіть макет свого проекту (особливо там, де це importвідбувається) та чи використовуєте ви збірку багатомодуля.
Аарон Дігулла

611

Якщо ви хочете завантажувати лише залежності, не роблячи нічого іншого, то це:

mvn dependency:resolve

Або завантажити єдину залежність:

mvn dependency:get -Dartifact=groupId:artifactId:version

Якщо вам потрібно завантажити з певного сховища, ви можете вказати це за допомогою -DrepoUrl=...


2
Я отримую цю помилку, коли запускаю цю команду: [ПОМИЛКА] Не вдалося виконати ціль org.apache.maven.plugins: maven-залежність-плагін: 2.1: отримати (за замовчуванням-cli) на проекті окремо-пом: параметри 'repositoryUrl' для цілі org.apache.maven.plugins: maven-залежність-плагін: 2.1: отримати відсутні або недійсні -> [Довідка 1]. Вказання -DrepositoryUrl = ... не працює.
Chry Cheng

1
Я думаю, що я знайшов рішення. Параметр повинен бути "repoUrl", а не "repositoryUrl".
Chry Cheng

Не вирішує проблему для мене: я запускаю mvn package -oвідразу після - я отримую помилку, що плагіни не можна завантажувати. Біг mvn dependency:resolve-pluginsтакож не повністю вирішує проблему.
Інокентій

Можливо, URL-адреси вашого сховища відсутні / неправильні. У будь-якому випадку, я не думаю, що ця відповідь є відповіддю на проблему, з якою у вас виникло. Ця відповідь охоплює випадок, коли Maven може знайти всі необхідні йому артефакти у налаштованих сховищах.
Ендрю Спенсер

Мені байдуже, вірую ти чи ні, християнин чи ні ... Бог благословить тебе цю дивовижну просту відповідь.
Salathiel Genèse

12

Я знаю, що це давнє питання зараз, але для користувачів, які використовують Mavenплагін із Eclipse пунктом under Windows, у вас є два варіанти:

  1. Якщо ви встановили Maven як окремий додаток:

    Ви можете використовувати таку команду в CMDпід проектним контуром:

    mvn eclipse:eclipse

    Він оновить ваше сховище з усіма відсутніми банками відповідно до залежностей у вашому pom.xmlфайлі.

  2. Якщо у вас не встановлено Maven як окрему програму, ви можете виконати наступні кроки під час затемнення:

    Клацніть правою кнопкою миші на project-> Run As-> Run configurations.

    Потім виберіть mavenBuild.

    Потім натисніть newкнопку, щоб створити конфігурацію вибраного типу. Клацніть на «Огляд робочої області», потім виберіть проект і вкажіть ціліeclipse:eclipse

Ви можете ознайомитися з тим, як запустити команду mvn eclipse: eclipse для отримання додаткової інформації.


3
Запуск затемнення: затемнення після залежності: рішення допомогло мені побачити завантажені баночки у затемненні, дякую!
Анатолій Якимчук

2
Хоча ця відповідь допоможе бідним людям, що зациклюються на Eclipse, я настійно рекомендую всім, хто використовує Eclipse, знайти кращу альтернативу. Особливо, якщо ви будете використовувати Maven. Netbeans та IntelliJ - це світлі роки вперед.
64BitBob

@ 64BitBob Якщо припустити, що Netbeans та IntelliJ кращі за затемнення, ми завжди повинні давати рішення тим, хто цим користується. :)
cnŝdk

Я бачу, що плагін більше не доступний на ринку, але так, він працює в Eclipse 2020, не завантажуючи нічого. Цікаво, чи mvn eclipse: eclipse - це команда, що надсилається самим eclipse, коли ми клацніть правою кнопкою миші>> Maven-> Оновити проект ...
Paolo

@Paolo На мою думку, вони автоматично додали плагін у нових версіях Eclipse, і так, я думаю, це одна і та ж команда за параметром "Оновити проект".
cnŝdk

1

Зверніть увагу на сферу вашої залежності. У мене виникло питання, коли, коли я викликаю чисту компіляцію через Intellij, пом буде завантажено, але jar не буде. Був створений файл xxx.jar.lastUpdate. Потім зрозумів, що область залежності - це тест, але я викликав компіляцію. Я видалив репост і запустив тест mvn, і проблема була вирішена.


-4

Клацніть правою кнопкою миші на проекті. Перейдіть до Maven -> Update Project.

Залежності будуть автоматично встановлені.


Ось як це зробити в Eclipse.
користувач1364368

іноді, і це можливо, це не працює, деякі команди, такі як mvn пакунок, установка, залежність: вирішити можуть вирішити вашу проблему
Шам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.