Как сделать из директории модуль maven?
Возможно ли сделать из уже существующей директории (внутри которой уже есть папки и классы) модуль maven? И можно ли это сделать в intellij idea?
Отслеживать
задан 14 мая 2019 в 13:13
SorryForAsking SorryForAsking
383 2 2 золотых знака 5 5 серебряных знаков 22 22 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Нужно проверить, присутствует ли в директории, которую необходимо сделать модулем pom файл. Если pom.xml присутствует, но по какой то причине Intellij IDEA модуль не определяет его, то есть следующий вариант:

Жмем «+», в открывшейся структуре проекта выбираем pom.xml в директории, которая должна быть определена, как модуль.
Как в IntelliJ IDEA написать и собрать в исполняемый .exe файл приложение на JavaFX

Как я уже писала в своей предыдущей статье, недавно, после двухлетнего обучения (обещали 12 месяцев, но жизненные и геополитические обстоятельства внесли свои коррективы в сроки получения дополнительного образования), я стала java-разработчиком.
Завершение обучения требовало написания выпускного проекта, которым я, изрядно поразмыслив, решила «убить сразу несколько зайцев»:
- проект должен быть написан мной самостоятельно (без команды),
- быть законченным и полноценным с точки зрения «бэка и фронта»,
- функционал проекта должен нести какую-то информативную пользу,
- проект станет подарком на день рождения.
Вспомнив все, чему меня «пытались научить», я решила, что за 1,5 месяца, отведенных на выпускную работу (с учетом загруженности по основному месту своей занятости), я вполне самостоятельно справлюсь с написанием оконного приложения для рабочего стола по предоставлению пользователю текущих и прогнозных значений погоды. Оболочку приложения решила выполнить на JavaFX, а для получения данных о погоде использовать JSON.
Когда я выслала преподавателю техническое задание с характеристиками проекта, он, восседая на удобном кресле где-то в пригороде германского города Мюнхен, меня, великовозрастную студентку из Санкт-Петербурга, «обрадовал и окрылил» тем, что знания по JavaFX в реальной жизни мне не пригодятся, и я рискую впустую потратить время…
Ну что же, такая откровенность на завершающей стадии обучения, конечно, похвальна. Осознав, что целый курс, посвященный разработке приложения на JavaFX, получается, еще год назад был пустой тратой времени, я решила не отступаться и попробовать реализовать задуманное.
Процесс и трудности, с которыми пришлось столкнуться
Не особо вдумываясь в тонкости платформы JavaFX и ее представлении в выпусках Java-8, я решила писать приложение на JDK-1.8 в среде разработки IntelliJ IDEA Community Edition, используя maven.
Начиная создавать проект стандартным путем и пытаясь упростить себе жизнь, я выбрала настройки, как показаны на скриншоте:

и, нажав на кнопку «Next», получила неожиданное для себя сообщение:

Да-да, я не знала той тонкости, что JavaFX, представленный как часть выпуска Java-8, был удален из JDK и перенесен в отдельный модуль в Java-11.
Ну что же, начав все сначала, я выбрала JDK-11.0.2, и у меня чудесным образом создался проект с необходимыми классами и ресурсными файлами, со всеми нужными зависимостями и способами сборки, автоматически прописанными в pom.xml файле:

Чтобы проверить, действительно ли работает минимальный функционал будущего приложения, я запустила класс HelloApplication.java и получила результат, свидетельствующий, что все в порядке:

Далее была длительная полуторамесячная работа над проектом, в процессе которой:
- я внесла изменения в базовый код, сформированный IntelliJ IDEA автоматически,
- создала сцены с помощью JavaFX Scene Builder 2.0,
- установила получение информации по JSON,
- и прочее, прочее, прочее… пока в среде разработки все не начало запускаться, открываться и отображаться так, как мне бы хотелось.
С финальной версией проекта и демонстрацией его возможностей можно ознакомиться на GitHub.
Теоретически, проект готов, образовательная цель достигнута, его можно сдать как выпускную работу и выдохнуть.
Но, не забываем, программа должна была стать подарком на день рождения. У именинника не установлена Java, чтобы запустить jar-файл проекта и наслаждаться результатом работы приложения. Значит, нужно собрать проект в исполняемый .exe файл, который будет запускаться на любом устройстве с установленной системой Windows.
«Ерунда какая!» — подумала я, — «У меня же IntelliJ IDEA, она все сама соберет и подскажет, в случае чего».
Захожу в File -> Project Settings -> Artifacts -> JavaFx application -> From Module ‘имя модуля’

Добавляю к артефакту всю библиотеку зависимостей, что у меня есть в проекте (краем глаза вижу красные символы, которые должны бы вызвать тревогу и заставить меня призадуматься, но я так увлечена процессом, что не придаю им значения):

Заполняю сведения об основном классе, который запускает приложение (поле Application class):

В той же вкладке указываю значение «all» в поле Native bundle и применяю настройки:

После вхожу в режим Build -> Build Artifacts, выбираю только что созданный артефакт и… получаю сообщение, что используемая версия JDK не способна собрать мой проект в необходимый пакет:

Начитавшись всего, чего только возможно, во всемирной паутине, я решаюсь на эксперимент:
1. Заменила в pom.xml файле версию Java 11 на 8, обновилась:

2. В File -> Project Structure -> Project указала корректную версию используемой SDK:

3. Закомментировала (можно удалить) файл module-info.java, сформированный Java-11 автоматически при создании проекта:

4. Проверила, запускается ли приложение до сборки:

5. Описанными выше способами снова создала и собрала артефакт. Но! – опять получила ошибку:

6. После непродолжительных поисков причины я поняла, что на ноутбуке, на котором написана моя программа, собрать ее в исполняемый .exe файл у меня пока не получится, т.к. в наименовании пути к директории не должно быть ни кириллицы, ни специальных символов:

И изменение имени учетной записи Windows вручную не приведет к изменению имени пользовательской папки.
7. Не рискнув «копаться в мозгах» установленной на ноутбуке операционной системы, я воспользовалась стационарным компьютером, не имеющим в наименовании директорий кириллицу, и спокойно собрала проект.
Запускаемый .exe файл располагается в папке out\artifacts\название артефакта\bundles\название проекта:

Вместо заключения
При кажущейся простоте создания приложения на JavaFX (особенно с помощью JavaFX Scene Builder 2.0 и бесплатных видео-уроков на различных ресурсах), написание функционала программы – это только половина пути. Программа должна работать, жить своей жизнью самостоятельно, без привязки к среде разработки. И, как показывает мой личный опыт, при сборке проекта и выпуске его в «большой мир» приходится преодолевать немало терний.
Надеюсь, что моя статья поможет кому-нибудь избежать ошибок, найти ответы на вопросы или просто сразу пойти правильным путем (например, создавать обычный maven-проект на Java-8, вручную прописывая в pom.xml зависимости и способ сборки, и всегда указывать на латинице имена учетных записей, директорий в своей операционной системе).
Как сделать папку модулем intellij idea

В моей версии нет пункта Java, у Вас скрин старой версии app? При создании проекта выбрать New Project? A JDK JBR-17 ?
4 декабря 2023
От себя добавлю ещё
Rainbow Brackets
Удобная штука — цветные скобки, чтобы не путаться в них)
29 ноября 2023
чуваки, у меня очень старый, 15 года ноут Леново. я установил 17-ю IntelliJ IDEA и она у меня диииико виснет)) есть советы как уменьшить тупняки? мб как-то оптимизировать можно? или другую IDE установить? советы «купи новый ноут» не принимаются
Ayana Уровень 10
16 ноября 2023
Накидайте, пожалуйста, лайков для статуса
Brewmaster Уровень 10
13 ноября 2023
Ребят как поставить русский язык ?
11 ноября 2023
Почему-то SonarLint не хочет ставиться, ошибку выдаёт. Хелп ми плиииз)
11 октября 2023
Есть JavaFX, но нет просто Java, может я что то не так установил?
Novikova Natalia Уровень 25
10 октября 2023
если кому нибудь интересно, wearecommunity — интересное сообщество, проводит конференции и конкурсы, можно вступить , ссылка — https://wearecommunity.io Сообщество часто устраивает конкурсы на конференциях — скучно не будет , и есть возможность что нибудь выйграть. У меня например получилось год назад получить бесплатно лицензию на год пользования Intellij Idea Ultimate.
Anastasia Уровень 14
17 сентября 2023
Подскажите пожалуйста где в настройках поменять для всех файлов — чтобы они создавались в папке, которую я укажу. Где эта настройка находится?
Подключаемый модуль Azure DevOps для IntelliJ IDEA и Android Studio
IntelliJ IDEA — это интегрированная среда разработки, созданная JetBrains. Дополнительные сведения см. в статье https://www.jetbrains.com/idea/. Подключаемый модуль Azure DevOps для IntelliJ позволяет легко и интуитивно легко подключаться к репозиториям Git на Azure DevOps Services и Team Foundation Server (TFS). Этот подключаемый модуль также можно использовать для импорта проектов в Azure Repos или создания запросов на вытягивание в репозитории Git Azure DevOps Services/TFS.
В этом руководстве показано, как создать репозиторий Git с помощью веб-портала Azure DevOps Services, добавить пример кода, а затем клонировать репозиторий и создать запросы на вытягивание из IntelliJ IDEA.
Предварительные требования
Чтобы выполнить действия, описанные в этом руководстве, вам потребуется:
- Организация в Azure DevOps. Если у вас нет организации, вы можете зарегистрироваться для нее бесплатно. Каждая организация включает бесплатные неограниченные частные репозитории Git.
- IntelliJ IDEA, установленный на компьютере. Если у вас ее нет, получите IntelliJ IDEA.
- Подключаемый модуль Azure DevOps для IntelliJ. Инструкции по установке см. на странице загрузки подключаемого модуля IntelliJ . Этот подключаемый модуль совместим с выпусками IntelliJ IDEA Ultimate и Community, Android Studio, RubyMine, WebStorm, PhpStorm, PyCharm, AppCode, MPS, 0xDBE и CLion.
- Средства командной строки Git.
- Сведения об установке Git для Windows, включая диспетчер учетных данных Git, см. в статье Установка диспетчера учетных данных Git.
- Сведения об установке Git для macOS и Linux см. в разделе git-scm.com.
Создание репозитория

- Перейдите к проекту в Azure DevOps, перейдя по адресу https://dev.azure.com/ и выбрав имя проекта. Его можно выбрать из списка Все проекты или из списка Последние проекты, если вы недавно к нему обращались.
Примечание При использовании Azure DevOps Services URL-адрес проекта имеет dev.azure.com/
/ формат . Однако предыдущий формат, ссылающийся на этот формат, по-прежнему visualstudio.com поддерживается. Дополнительные сведения см. в статье Знакомство с Azure DevOps. Переключение существующих организаций на использование нового URL-адреса доменного имени. - В области Проект на веб-портале выберите Код, а затем выберите раскрывающийся список рядом с именем текущего репозитория и выберите Создать репозиторий.

- В диалоговом окне Создание репозитория убедитесь, что Git является типом репозитория, введите DeepSpace в поле имени нового репозитория и нажмите кнопку Создать.

- Выберите Клонировать в правом верхнем углу окна Код и скопируйте URL-адрес клонирования.
- Откройте командное окно Git (Git Bash в Git для Windows), перейдите в папку, в которой вы хотите получить код из репозитория, хранящегося на компьютере, и выполните git clone путь, за которым следует путь, скопированный из URL-адреса клонирования на предыдущем шаге, как показано в следующем примере.
Добавление примера кода в репозиторий

git clone https://dev.azure.com/contoso-ltd/MyFirstProject/_git/DeepSpace
cd DeepSpace
git add --all
git commit -m "Committing DeepSpace sample files"
git push

Клонирование репозитория в IntelliJ
Теперь, когда у нас есть репозиторий Git с примером кода, давайте посмотрим, как мы можем работать с кодом из IntelliJ IDEA. Клонировать репозиторий VSTS в IntelliJ очень просто. Вам даже не нужно знать URL-адрес репозитория.
- Откройте IntelliJ IDEA, выберите Извлечь из системы управления версиями , а затем выберите VSTS Git.

- Затем просто войдите в Azure DevOps Services.

- При нажатии кнопки Войти вы получите стандартный пользовательский интерфейс Azure DevOps Services входа. После входа вы увидите список всех репозиториев, к которых у вас есть доступ, на Azure DevOps Services. Выберите правильный репозиторий DeepSpace и нажмите кнопку Клонировать . (Вы также можете выбрать, куда на жестком диске клонируется репозиторий, изменив родительский каталог.)

- После завершения клонирования IntelliJ спросит, хотите ли вы открыть проект. Нажмите кнопку Да , и проект DeepSpace откроется в IntelliJ IDEA.

Внесение некоторых изменений в IntelliJ
- Начните с того, чтобы убедиться, что проект выполняет сборку с помощью команды Создать>проект. Если вам будет предложено добавить пакет SDK для проекта, просто добавьте последнюю версию Java JDK, установленную на компьютере. Если вы хотите запустить проект сейчас, чтобы узнать, что он делает, можно сделать следующее:
- В корневой папке DeepSpace в репозитории Git выполните команду mvn jetty:run (для этого требуется установить Maven).
- В браузере перейдите по адресу http://localhost:3030/
Вы должны увидеть звезды и планеты, пролетающие мимо! Если вы посмотрите внимательно, вы можете заметить, что Земля не пролетает мимо.
- В нашем примере DeepSpace есть некоторые разделы кода, которые были закомментированы. Если открыть src/main/java/com.microsoft.tfs.demo/ImageService.java файл в IntelliJ, вы увидите один из разделов.
Давайте исправим этот раздел кода локально. Как правило, при работе в репозитории Git необходимо создать ветвь для своей работы и зафиксировать ее. Создайте ветвь с помощью IntelliJ с помощью встроенного окнаВетвейGit>VCS>. При появлении запроса используйте имя ветви fixBugs. Получив ветвь для внесения изменений, можно раскомментировать код и перестроить проект. Если вы выполните приведенные выше инструкции для повторного запуска программы, вы увидите, что Земля пролетит мимо. - Теперь, когда наши изменения созданы и протестированы, мы можем зафиксировать их локально с помощью менюVCS Commit Changes (Фиксация измененийVCS>). В диалоговом окне фиксации вы увидите кнопку VSTS над текстовым полем сообщения о фиксации. Нажмите эту кнопку, чтобы просмотреть список назначенных вам рабочих элементов. Выберите рабочий элемент Add Missing Earth (Добавить отсутствующие земли ) и нажмите кнопку ОК. Появится текстовое поле сообщения о фиксации с типом, номером и заголовком рабочего элемента. При этом рабочий элемент будет связан с этой фиксацией для отслеживания в будущем.
Обратите внимание, что это изменение выполняется только локально. Он еще не был изменен в нашем репозитории Azure DevOps Services.
Создание запроса на включение изменений
Вы можете отправить локальную ветвь на сервер и создать запрос на вытягивание для проверки своей команды. Наш подключаемый модуль помогает создать запрос на вытягивание на основе текущего контекста в IntelliJ. Это позволяет сэкономить несколько шагов и исключить необходимость переключения на браузер для создания запроса на вытягивание.
Для этого просто выберите VCS GitCreate Pull Request (Создать запрос на вытягиваниеVCS>Git>). Откроется диалоговое окно Создание запроса на вытягивание . В этом диалоговом окне содержится много сведений, включая измененные файлы и фиксации, которые будут отправлены. Вы можете присвоить запросу на вытягивание заголовок и описание.

После нажатия кнопки Создать запрос на вытягивание вы получите уведомление о том, что запрос на вытягивание создан. Он также содержит ссылку на запрос на вытягивание на случай, если вы хотите добавить определенных рецензентов или комментарии. После завершения проверки кода можно объединить запрос на вытягивание в ветвь main.
Проверка состояния сборки
После объединения изменений в ветвь main можно проверка успешность сборки CI из IntelliJ. В правом нижнем углу находится значок, отображающий состояние сборки. Если вы видите зеленую галочку, это означает, что сборка выполнена успешно. Если вы видите красный X, сборка завершилась сбоем. Если вы видите серый вопросительный знак, сборка не найдена или срок действия учетных данных может истечет.
![]()
Вы можете щелкнуть значок для получения дополнительных параметров, таких как просмотр сведений о сборке, постановка в очередь новой сборки и обновление состояния вручную.

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

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