Add framework support нет maven

Обновлено: 05.07.2024

Я пытаюсь создать проект spring + maven в идее IntelliJ. Я читал эти официальные wiki , но когда я заканчиваю шаги, в моем проекте нет maven. Я пытался добавить его своими руками, но кажется, что у меня руки не так хороши :(, потому что maven зависимости, папка lib и классы, которые я хочу использовать, живут своей собственной жизнью (зависимости не находятся в папке lib, и я пытаюсь набирать классы из зависимостей, нет автозаполнения). Есть ли у кого-нибудь step-by-step руководство или ссылка?

4 ответа

Я новичок в maven. Сегодня я хочу создать проект spring mvc, поэтому нахожу spring-mvc-quickstart-archetype , но как использовать его в Intellij IDEA?

Вы получите файл zip, который затем можно распаковать в папку dev.

Затем откройте Intellij и выберите Файл | Новый | Проект из существующих источников. (Или Импортируйте проект с экрана приветствия).

Выберите разархивированную папку, а затем следуйте инструкциям мастера, выбрав Maven, когда вам будет предложено.

Сначала создайте проект spring, перейдя в Файл->Создать->Проект и выбрав spring. Он создаст проект spring. Затем, чтобы добавить поддержку maven, вы можете щелкнуть правой кнопкой мыши по проекту и выбрать "Add Framework Support". Это даст вам всплывающее окно, и из него выберите "maven".

Я думаю, это то, что вы ищете?

См.ссылку ниже для получения дополнительной информации.

Но я бы сослался на классический способ. Создайте проект maven с помощью arch-типа и импортируйте проект maven в Intellij, а затем добавьте зависимости spring maven в pom.xml. Все ясно

Я привык к проектам Spring и Maven, где я создал многомодульный проект в Maven с такими проектами, как: app-web app-models app-services app-common Теперь я начинаю использовать Play Framework 2 (Scala) и sbt . Существует ли аналогичная концепция с Play и sbt, чтобы я мог сгруппировать все эти.

В IntelliJ Idea 14 я мог бы использовать следующее: Файл > Новый проект > Spring > создать проект из шаблона > Spring MVC Чтобы создать шаблон Spring MVC приложения с Maven. Эта функция теперь где-то еще? Проблема в том, что если я не использую шаблон, то не будет создана папка webapp . Я проверяю.

Если вы хотите создать Spring-boot с Maven : Большинство использует Spring Initialzr.

Если вы хотите создать Spring не-boot с Maven с нуля:

  • Просто файл > Новый проект >. > Maven . [любой архетип]
  • Отредактируйте pom.xml, чтобы в нем было SPring зависимости:

` Затем вы можете создать свой первый тест, например:

И ваша конфигурация + интерфейс + боб:

  1. Пробег: mvn clean test
  2. Или создайте в конфигурации IntelliJ для запуска теста JUnit и запустите его.

Похожие вопросы:

Я пытаюсь создать новый проект Maven, используя IntelliJ IDEA 2016.1. Я после поддерживает страницу справки Для справки. После шага 1 я нажимаю на File -> New -> Module , и мне показывают.

Может ли кто-нибудь сказать мне, как я могу создать проект Seam для Intellij IDEA? Я пробовал с Maven, но у меня нет никакого успеха, запустив его после этого, и плагин для проекта Seam в IDEA.

В IntelliJ IDEA есть ли способ создания шаблона проекта Spring, как в Spring Source ToolSuite ? Цель здесь состоит в том, чтобы получить файл POM, созданный автоматически с зависимостями, связанными.

Я новичок в maven. Сегодня я хочу создать проект spring mvc, поэтому нахожу spring-mvc-quickstart-archetype , но как использовать его в Intellij IDEA?

Я привык к проектам Spring и Maven, где я создал многомодульный проект в Maven с такими проектами, как: app-web app-models app-services app-common Теперь я начинаю использовать Play Framework 2.

В IntelliJ Idea 14 я мог бы использовать следующее: Файл > Новый проект > Spring > создать проект из шаблона > Spring MVC Чтобы создать шаблон Spring MVC приложения с Maven. Эта функция теперь.

Я создал проект Maven (java) в IntelliJ идее на MacOS. Он имеет стандартную структуру каталогов, например: myproject | -- src -- main -- java -- My java code goes here | | | ----- test -- java --.

Я хочу создать проект Spring в IntelliJ Idea (Community Edition), и это руководство не помогает, так как модуль Spring не появляется. Возможно ли это?

Когда я запускаю mvn compile exec:exec, все работает нормально, но когда я нажимаю кнопку debug для той же конфигурации, это дает мне следующую ошибку: /home/miika/.jdks/openjdk-14.0.1/bin/java.

В этом уроке я вам покажу основную силу Maven, а именно как создать проект, который можно разрабатывать целой командой и при этом не потребуется каждому члену команды подключать необходимые библиотеки к проекту, давайте начнем.
И так начнем с того, зачем вам нужен Maven? В статье Maven. Часть 1 – Знакомство и настройка мы уже немного разобрали что это и как настроить.

Тут я хочу вам показать как использовать данный инструмент, а покажу вам его использование на примере JUnit тестирования.

Шаг 1. Создание Maven проекта

Запускаем нашу всем любимую Intellij IDEA и нажимаем File->Create New Project


Шаг 2.

Теперь в корне проекта вы должны увидеть файл pom.xml.

И вот что вы должны видеть:

С помощью этого файла и осуществляется настройка сборки вашего проекта. К примеру вам нужно собрать проект в *.jar файл, для этого вам достаточно указать это в pom.xml. Как собрать проект в jar файл вы можете посмотреть тут.

Это файл изначально имеет default (поумолчанию) структуру.

Шаг 3. Используем Dependency

Что же такое dependency и для чего они нужны?

Рассмотрим на базовом шаблоне:

В выше приведенном примере я продемонстрировал подключение библиотеки JUnit 4.11 к проекту, теперь при сборке проекта эта библиотека упакуется в мой *.jar или *.war архив, а также теперь мы в наших классах можем обращаться к объектам библиотеки JUnit.

Шаг 4. Структура проекта

Стандартная структура каталогов:

Стандартная структура каталогов — одна из реализаций этого принципа.

Поскольку проект её придерживается, отпадает необходимость специфицировать пути к файлам, что сильно упрощает pom.xml.

Следующая структура показывает важнейшие каталоги.

Корневой каталог проекта:

src/main : исходные файлы собственно для продукта;

src/main/java : Java-исходный текст;

src/main/resources : другие файлы, которые используются при компиляции или исполнении, например Properties-файлы;

src/test : исходные файлы, необходимые для организации автоматического тестирования;

src/test/java : JUnit-тест-задания для автоматического тестирования;

target : все создаваемые в процессе работы Мавена файлы;

target/classes : компилированные Java-классы.

Шаг 5. Жизненный цикл

Жизненный цикл проекта — это список поименованных фаз, определяющий порядок действий при его построении.

Maven использует по умолчанию следующий жизненный цикл:

3) обработка тестовых ресурсов (например — скачивается из интернета JUnit-пакет);

4) компиляция тестов (тестирующие классы не передаются конечным пользователям);

Стандартные жизненные циклы могут быть существенно дополнены Maven-плагинами и Maven-архетипами.

Maven-плагины позволяют вставлять в стандартный цикл новые шаги (например, распределение на сервер приложений) или расширять существующие шаги. Maven-архетипы представляют собой заготовки для различнейших программных пакетов (если они отвечают стандартам Maven-структуры).

В статье я расскажу, как подключить библиотеку, которой в maven по умолчанию нет, и как подключить другую библиотеку, исходники которой давным-давно потеряны.

Также я опишу, как сделать maven проект, который генерирует артефакт, по совместительству являющийся библиотекой, и как подключить эту библиотеку к другому своему же maven проекту.

Эта статья для тех, кто только начинает осваивать java.

image

В моей предыдущей статье было сказано, что maven сам скачает все указанные в pom.xml зависимости. А вот что будет, если он какую-нибудь зависимость не найдёт? В таком случае maven скажет, что зависимость не обнаружена и прервёт процесс сборки с ошибкой. Что делать в этом случае?

Этот вопрос, на самом деле, распадается на несколько вопросов, каждый из которых надо решать индивидуально. Выбор решения же определяется тем, где эта зависимость есть.

Зависимость может быть в интернете в каком-то месте, о существовании которого maven не знает. Ещё она может быть в виде jar файла у вас на руках и, наконец, в виде исходного кода, оформленного как maven проект.

Об этих трёх случаях мы и поговорим.

Но сначала надо коротко прояснить один вопрос.

Откуда maven качает библиотеки

На просторах интернета есть сервер, на котором выложены java библиотеки. Этот сервер называется репозиторием, а по-русски — хранилищем. Это не какой-то абстрактный, а вполне конкретный ресурс, адрес которого зашит в дефолтные настройки maven. Поэтому он называется репозиторием по умолчанию. Именно там maven будет искать зависимости из pom.xml.

Как быть, если библиотеки нет в удалённом хранилище по умолчанию, но она есть в другом удалённом хранилище

Первая и, возможно, самая частая проблема возникает, если библиотеки в этом умолчальном репозитории нет или в случае, если этот репозиторий с машины, на которой осуществляется сборка, недоступен, например, по соображениям безопасности.

Причины проблемы немного разные, но решение одинаковое — нужно указать репозиторий, в котором зависимости есть. Это либо какой-то другой адрес в Интернете, либо адрес репозитория, поднятого админами в локальной сети.

Как указать maven проекту, где искать дополнительный репозиторий

Для того, чтобы указать maven, что зависимости надо искать не только в умолчальном репозитории, существует штатный механизм. Вот так можно прописать ещё один адрес для поиска.

Далее мы подключили репозиторий проекта Spring, в котором можно найти последние версии этого семейства бибилиотек. Вот как это выглядит внутри pom.xml

Теперь maven, когда не найдёт зависимости в репозитории по умолчанию, или обнаружит, что оный недоступен — не запаникует, а поищет библиотеку в ещё одном репозитории и, если всё идёт по плану, найдёт её там. Тут следует уточнить, что если ваша программа может быть использована в качестве зависимости, например, если сама является библиотекой, то класть тег репозиторий в pom.xml — не лучшая идея. Объяснение того, почему это так, выходит за рамки статьи, но с ним можно ознакомиться тут.

Но бывает так, что библиотеки в репозиториях нет. Например, если это драйвера для MSSQL, или если это проприетарная библиотека, которую вы недавно приобрели за большие деньги.

Как подключить библиотеку, которой в репозиториях нет

Подключить такую библиотеку можно несколькими способами. Например, если у вас есть свой репозиторий в локальной сети, то можно (а иногда даже нужно), положить библиотеку туда, и тем самым свести задачу к предыдущей.

Но, если это возможно, такую библиотеку лучше положить в проект и хранить прямо в системе контроля версий. Тогда библиотека будет доступна программе всегда и на любой машине, а шаг по копированию этой библиотеки в репозиторий можно не включать в мануал.

Для обработки таких кейсов у maven тоже есть штатный механизм. Только что мы выяснили, как указать maven удалённый репозиторий, отличный от умолчального. Так вот, не обязательно использовать удалённое хранилище. Можно сделать репозиторий в локальной файловой системе, положить туда библиотеку и проинструктировать maven искать зависимости ещё и там.

Как создать свой локальный репозиторий

Для этого, как сказано выше, у maven есть штатное средство.

Допустим у нас есть библиотека, которая находится в jar файле под названием hello-world-library-1.0-SNAPSHOT.jar. О библиотеке нам известно, что в ней есть один класс HelloWorld, который включает один статический метод say, печатающий в консоли, как несложно догадаться, Hello World.

Мы хотим в директории проекта создать директорию lib, в которой будет находиться наш дополнительный репозиторий, и поместить туда библиотеку. Для этого достаточно в директории проекта выполнить следующую команду.

Если вы используете операционную систему Windows, нужно заменить \ на ^, то есть написать

Или можно просто убрать \ и написать команду в одну строчку.

Обратите внимание, как и для любого другого артефакта, для библиотеки нам нужно придумать groupId, artifactId и version. Мы потом укажем их в pom.xml, когда будем подключать зависимость.

Внутри директории, которую создаст команда, находится полноценный репозиторий, для использования которого достаточно указать maven, где он находится. Все сведения о том, какие библиотеки можно там найти, содержатся непосредственно в структуре директорий свежесозданного репозитория. Для последующего использования репозитория, например, на других машинах, команду deploy-file выполнять не надо.

Дать проекту знать, что репозиторий существует, и показать, где он находится, можно уже описанным способом, правда, с поправкой на то, что репозиторий локальный.

Обратите внимание на пятую строку

Тут сказано, что искать репозиторий надо в директории проекта, на которую указывает встроенная переменная maven project.basedir.

Класс, использующий библиотеку, будет предельно прост, но для порядка приведём его код.

Осталось добавить в pom.xml зависимость и можно собирать проект.

Директорию lib надо закомитить и библиотека будет доступна проекту вообще всегда.

Однако следует помнить об одном правиле.

Нужно обязательно обновлять номер версии библиотеки в локальном репозитории при каждом изменении jar файла

Maven воспринимает репозитории как внешние, поэтому, если не изменить номер версии, то maven будет использовать не версию библиотеки из директории lib, а ту, что он закешировал на локальной машине. В данном конкретном случае это не должно сыграть роли из-за суффикса SNAPSHOT, но об этом нужно знать.

Есть ещё один распространённый сценарий. У вас есть своя библиотека, которую вы сами собираете с помощью maven и потом подключаете к другому maven проекту.

Как сделать свою java библиотеку

Для того, чтобы сделать библиотеку, достаточно написать класс с модификатором public. И потом можно будет использовать этот класс в коде, к которому подключена библиотека.

Вот такой, например, класс.

Теперь нужно сделать maven проект, который будет собирать библиотеку, содержащую этот класс.

Как мы помним, с точки зрения maven, библиотека — это просто артефакт, поэтому помник будет выглядеть тривиально.

Итак, у нас есть класс со статическим методом, у нас есть описание артефакта для maven. Осталось только собрать этот код, чтобы получилась библиотека, то есть jar файл.

Просто напишем в консоли:

После этого в директории target появится файл с названием \<artifactId>-\<version>.jar, в нашем конткретном случае — hello-world-library-1.0-SNAPSHOT.jar, который и есть ваша библиотека.

Как подключить свежесозданную библиотеку к своему maven проекту

Для того, чтобы библиотеку потом можно было подключать к другому проекту, нужно вместо package написать install.

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

Теперь можно сделать новый проект, который будет использовать библиотеку.

Внутри проекта будет один класс, который использует статический метод из библиотеки, чтобы сказать Hello world. Мы этот класс уже видели.

Проверим ещё раз:

Работает не хуже предыдущего варианта!

Что если ваша библиотека использует другую библиотеку?

Вопрос, казалось бы, глупый, но на всякий случай проведём эксперимент.

Сделаем библиотеку с непустыми зависимостями.

и напишем для неё код

Теперь соберём её

Перейдём в директорию с нашим проектом, который эту библиотеку использует и попробуем его собрать и запустить.

Как это работает

Строго говоря знать, как процесс устроен внутри, не обязательно, но всё равно очень полезно.

Команда mvn install соберёт библиотеку, а потом положит её в локальный репозиторий по умолчанию. То есть в то же самое место, где лежат все библиотеки, которые вы когда-либо подключали к maven проектам, за исключением, разумеется, тех, которые находятся в локальных репозиториях, сделанных лично вами.

Потом, при сборке проекта, использующего эту библиотеку, maven поищет её в локальном хранилище, найдёт и подключит.

Итого

  • Maven ищет библиотеки в удалённом репозитории по умолчанию.
  • Чтобы подключить библиотеку, которой нет в репозитории по умолчанию, можно указать дополнительные удалённые репозитории, тогда maven будет искать библиотеки ещё и в них.
  • Если библиотеки нет ни в одном удалённом репозитории, то можно с помощью штатного механизма maven создать локальный репозиторий и добавить его в pom.xml.
  • При обновлении репозитория, который находится в исходниках проекта, нужно всегда менять версию библиотеки, иначе могут быть непонятные проблемы.
  • Если у вас есть maven проект, то из него можно сделать библиотеку командой mvn package.
  • Командой mvn install можно поместить библиотеку в локальный репозиторий по умолчанию.
  • Чтобы использовать библиотеку в другом проекте, достаточно указать её в качестве зависимости в pom.xml.

UPD: В комментариях sshikov, igor_suhorukov, jbaruch и другие высказали мнение, что библиотеки нельзя хранить вместе с исходниками, потому что для этого есть другие, предназначенные специально для этого инструменты, такие как Nexus и Artifactory.

Тут я совершенно согласен. Когда речь идёт о крупных проектах и корпоративной разработке, быть по-другому просто не может. Но, с моей точки зрения, есть случаи, когда удобнее сделать иначе. Я имею в виду маленькие проекты, созданные в процессе обучения, потому что именно с такими вещами обычно имеют дело новички, и случаи, когда доступа к инфраструктуре нет, а добавить библиотеку в сборку нужно в течение 10 минут. Нужно было с самого начала уточнить, что речь в статье именно о таких кейсах.

Да, хранить библиотеки в системе контроля версий — хак. Но, как и все хаки, это такая штука, которой в некоторых случаях можно пользоваться и о возможности осуществления которой неплохо бы знать.

Причины, по которым техника, предложенная в статье, не подходит для корпоративной разработки, хорошо раскрыты в комментариях. Также советую обратить внимание на статью от разработчиков Nexus, спасибо jbaruch за ссылку. Статья интересная, если не найду существующего перевода на Хабре, планирую перевести ее и сделать отдельным постом.

кОфициальный сайтЗагрузите последний установочный пакет Maven:
Скачайте apache-maven-3.6.1-bin.zip, разархивируйте его и установите на локальный компьютер:

1.2 Конфигурационная среда

Создать новый с именемMAVEN_HOMEПеременная среды со значением, установленным для пути распаковки сжатого пакета:

add%maven_home%\binК пути переменной среды:

1.3 Проверьте, успешно ли установлен Maven


Введите команду mvn -version в CMD, если установка прошла успешно, появится номер версии Maven, путь установки и другая информация:

2. Настройте ИДЕЮ

2.1 Изменить файл конфигурации Maven

Создайте свой собственный каталог для хранения jar-пакетов, я назвал его здесьmy_jar(Это можно назвать как угодно):
Войдите в папку conf, отредактируйте файл settings.xml, измените содержимое в теге localRespository, создайте и добавьте свой собственный каталог хранения пакетов jar:
Измените содержимое тега mirrors следующим образом и укажите адрес загрузки jar на домашнем сайте:

2.2 Настройка Maven в IDEA

Интегрируйте maven в идею, каталог - File-> Setting-> Build, Execution, Deployment-> Build Tools-> maven, укажите путь установки Maven к домашней директории Maven:
Места, на которые следует обратить внимание при использовании импорта под maven, каталог File-> Setting-> Build, Execution, Deployment-> Build Tools-> maven-> import:

  • импортировать проект Maven автоматически: автоматически отслеживать изменения в pom.xml и импортировать зависимости maven
  • Тип зависимости: Тип зависимости
  • Автоматическое отключение (Источники, Документация). Независимо от того, нужно ли автоматически загружать исходный код и документы java (такие же, как в eclipse), я обычно не проверяю, потому что исходный код проверялся не часто, и есть кнопки быстрого доступа для прямой загрузки.
  • Настройки VM и JDK: могут быть установлены при необходимости

2.3 Использование Maven в IDEA


Общий вид Maven в IDEA выглядит следующим образом:

Только они настроены и используются в настоящее время и будут обновляться, если возникнут новые проблемы.

Читайте также: