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.