2013-09-24 3 views
1

Я новичок в использовании Maven для создания проектов. Я понимаю, что вы объявляете зависимости внутри файла POM, которые описывают банки, необходимые для проекта, чтобы они добавлялись к сборке во время компиляции.Понимание Maven Зависимости

Мой вопрос: как это работает во время разработки, когда мне нужен файл jar для разработки приложения? Я думал, что суть Maven заключается в том, что вам не нужно иметь файл jar, он приобретается и помещается в войну во время сборки. Но если я развиваюсь, и мне нужен файл jar (скажем, Джерси, например), мне все равно нужно выйти и схватить банку и поместить ее в каталог lib, чтобы сделать работу по разработке, так, чтобы Я знаю, какие классы/методы доступны мне в этом .jar? Может ли кто-нибудь объяснить мне, что мне не хватает?

Будут ли мои операторы импорта, ссылающиеся на классы джерси, будут разрешены во время компиляции, так как сейчас они подчеркнуты красным цветом, поскольку в настоящее время банку нет?

ответ

1

Как только вы указали зависимость в Maven pom, ваша ответственность за ее maven будет загружена. Помните, что Maven не беспокоит, имеет ли ваш код зависимость от этой банки. Итак, в вашем идее создайте проект Maven [не простой проект java], добавьте все свои зависимости в свой pom, когда вы сохраните pom, будут загружены все зависимости. Если зависимости не загружаются, вам нужно проверить файл maven settings.xml, где URL-адрес репозитория или учетные данные могут быть неверными.

Также хочу, чтобы детали объявления детали были детализированы. Maven имеет множество доступных плагинов, которые могут помочь вам упаковать все ваши зависимости в военном файле [монтажный плагин] или rpm [maven rpm plugin]. Эти плагины будут переносить все ваши зависимости вместе с основным банком в один файл развертывания.

+0

Я думаю, что это ключ, который мне не хватало, это то, что при сохранении файла pom загружаются банки. Благодаря! – user1154644

+0

Мой другой вопрос, который больше связан с maven, если я разрабатываю на машине, которая не имеет доступа к Интернету, есть ли способ, которым я могу иметь NetBeans указать мой локальный репозиторий maven? Прямо сейчас, когда я пытаюсь создать проект Java Maven с netbeans, создание проекта завершается неудачно, говоря «нет плагина для префикса« архетип »..... – user1154644

+0

Проекты во всех идеях всегда указывают на локальный репозиторий, но вы потребуется чистый доступ для загрузки зависимостей к локальному репозиторию. Если интернет не работает, вы также можете вручную разместить баннеры в локальном репозитории. Maven загрузит банку только в том случае, если эта версия jar отсутствует в локальном репозитории. – Lokesh

1

Ваше предположение или презумпция или концепция неверны.

Приведем пример. Вы создаете новый проект веб-приложения

  1. Создание проекта с использованием Maven: архетип
  2. Преобразовать проект затмить совместимый (любой IDE-совместимый). Это делается путем выполнения одной команды, и это добавляет необходимые банки в файл пути к классу, и вы можете разрабатывать свое приложение, как обычно.
  3. Создание и развертывание
+0

2) не требуется, если IDE поддерживает Maven напрямую (например, NetBeans) –

+0

Согласовано. Это необязательно, но более или менее необходимо делать, поскольку никто не хотел бы разрабатывать код в блокноте или в любом другом нормальном редакторе. –

+0

Мне это кажется странным. Я понимаю, что во время сборки/компиляции ссылки на классы в банке будут разрешены, но если я создам класс, импортирую классы джерси и начну использовать классы, как компилятор узнает об этих классах, поскольку ничего был загружен. – user1154644

1

Во-первых, в любом проекте Java Maven, вы должны выбрать опцию «Построить вместе с зависимостями», особенно, если вы используете NetBeans. С помощью Eclipse вы можете выбрать «Загрузить источники». Когда это будет сделано, зависимости Maven (файлы JAR) будут затем загружены.

Кроме того, вы сказали, что ваши операторы импорта будут разрешены во время компиляции. Это делается, когда вы нажимаете опцию «Построить с зависимостями» (щелкните правой кнопкой мыши проект Java в NetBeans), так как это загрузит все зависимости и создаст приложение и разрешит любые импортные файлы, которые используют библиотеки JAR, найденные в pom.xml ,

+0

Я вижу. Я предполагаю, что мое недоразумение перед выполнением сборки, когда я упоминаю класс в файле jar jar jar, будет ли Eclipse знать, о чем я говорю? – user1154644

+0

Он должен это сделать. Я также должен убедиться, что правильно установлен плагин Eclipse Maven. (Это можно легко забыть!) – blackpanther

Смежные вопросы