Архив

Archive for the ‘maven’ Category

Немного о структуре проекта


Забыл рассказать о структуре проекта для maven. Дело в том,что при конвертации проекта(или при создании maven-проекта) maven поменяет структуру проекта(расположение папок).Это часто путает начинающих(да и самому было неудобно первое время,хотя оказалось-то — всё же логично)) ). Между прочим,такая структура — стандарт дефакто в проектах. К тому же maven некоторые элементы ищет в стандартных папках и изменить такой подход maven-а к делу конечно можн,да вот только зачем) Тем более если проект пишется не одним человеком,каждому придётся объяснять чего,как и где лежит,так что вот)

Собственно сама структура проекта:

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

  • src\main\java — служит для хранения классов приложения (*.java-файлов) используемых при запуске приложения
  • src\main\resources — папка для хранения файлов,используемых приложением для работы,но не java-файлов. Тут надо размещать всяческие properties-файлы, xml-файлы и так далее
  • src\main\webapp — тут располагается всё,что связано с веб-контентом. jsp-страницы, web.xml,тайлсы,картинки,css-файлы,jQuerry-скрипты и так далее.
  • src\test — сдесь расположено всё,что будет использовать мавен для тестирования приложения
  • src\test\java — java-классы юнит-тестирования(непосредственно сами тесты)
  • src\test\recources — как и src\java\resources хранит всё что не тест) Удобно в случае если у вас например есть две базы данных,одна для непосредственно проекта,а вторая для тестирования проекта и если вдруг при тестах база отвалится,то это будет не рабочая база,и клиенты работающие в момент тестирования не потеряют данные (как-то так.мутное объяснение,но я думаю с большего понятное)
Напоминаю,что на эти папки(кроме разе что src\main\webapp) надо создать ссылки в проекте. Для этого надо зайти в свойства(properties) проекта и в пукте Build Path в закладке Source добавить эти папки.
Рубрики:maven

конвертация проекта для maven


Иногда бывает,вот есть у тебя проект,но надо к нему прикрутить maven.И вот казалось бы с такой отличной системой всё должно работать на ура,но не тут-то было.Требуется совершать магические действия и танцы с бубном часами на пролёт,пока не поймешь,что же тут не так,хотя потом всё оказывается достаточно логично и просто) Ну-с,приступим.

За основу я возьму веб-проект написанный вот в этой статье и удалю из него все используемые библиотеки (папка WebContent/WEB-INF/lib)чтобы показать пользу от maven.Он и прост и не требует глубоких познаний. Для того чтобы преобразовать проект в maven-проект,надо всего лишь подключить dependency managment tool. Для этого кликаем по проекту правой кнопкой и далее Maven->Enable dependency managment. maven немного подумает,добавит pom-файл в корень проекта и собственно преобразование можно было бы считать оконченным,если не несколько НО.

во-первых,у нас все ещё нет предварительно удалённых библиотек.Добавим их.
Для этого:

  • кликаем по проекту правой кнопкой далее maven->add Dependency.
  • В появившемся окне окне в поле ввода пишем struts2-core. maven выдаст список подходящих библиотек(в нашем случае должна остаться одна)
  • каждое поле раскрывается в список с доступными версиями библиотек.Если в своём проекте вы использовали не самую последнюю версию и боитесь,что с новой не будет работать,можно сразу выбрать нужную вам версию,либо взять последнюю и потом при необходимости просто поменять версию
  • далее правой кнопкой по проекту Run As->install

и так для каждой библиотеки.Одна из основных особенностей maven в том,что скорее всего библиотека скачается не одна,а в месте с зависимыми библиотеками. В редакторе pom в закладке Dependency Hierarhy вы можете посмотреть все подгруженные  библиотеки и список зависимостей между ними. Наш проект зависит только от одной библиотеки struts2-core которая в свою очередь зависит ещё от нескольких.

далее нам надо зайти в свойства проекта и немного подправить Build Path. П проекту правой кнопкой и в списке выбираем Properties. В появившемся окне в колонке слева выбираем Java Build Path.

  • в первой закладке Source нам надо добавить source folder. Кликаем по кнопке «Add Folder…» и в появившемся списке выбираем папки,в которых у нас лежат классы(в нашем случае это папка src)
  • в третьей закладке нам надо поменять используемую версию jre. Выбираем пункт JRE System Library[J2SE-1.5], в списке слева кликаем по кнопке Edit и в появившемся окне в списке Execution environment выбираем JavaSE-1.6(jre6) 
  • но и на этом ещё не всё. Ява будет видеть библиотеки и эклипс будет корректно подсвечивать используемые библиотеки и пакеты,но при запуске на сервере будут проблемы,так как используемые библиотеки не будут импортироваться в war-файл перед развёртыванием на сервере. Для этого нам надо отметить какие библиотеки подключать при импортировании. В четвёртой вкладке Order and Export нам достаточно пометить Maven Dependencies и JRE System Library.
  • Если и теперь не работает,то скорее всего надо указать какой именно репозиторий использовать для загрузки библиотек. В закладке Markers(находится там же де и закладка Console) развернём список Classpath Dependency Validator Message и выделив элемент нажмём Ctrl+1 (Quick Fix). Нажмём Finish

Теперь всё должно работать.Если не работает,проверяем dependencies проекта и их версии. На этом всё)

Рубрики:maven

создание вебпроекта с использованием maven


Ниже вас ждёт небольшой,кстати и не совсем полезный,(и не совсем бесполезный) урок по созданию maven-вебпроекта. Мавен мы естесственно ставили не просто так,и теперь немного попользуемся им.

Создаём новый проект(File->New Project). В поле ввода введём maven и выберем Maven project и нажмём next. Проверим галочку в поле Use default Workspace location и снова нажмём Next.

В поле Filter введём maven-archetype-webapp и снова нажмем next

в следующем окне нам надо ввести GroupId(название пакетов) и ArtifactId(название проекта) и кликнуть Finish.

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

кликаем по проекту правой кнопкой,выбираем появившийся пункт Maven->Add Plugin. В появившемся окне в поле для ввода вводим maven-eclipse-plugin и выбираем появившийся плагин. Плагин скачается и будет в локальном реппозитории,то есть если в следующий раз понадобится,то он не будет скачан из интернета.

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

 

теперь внутри тега <plugin> есть тег <configuration> и нам надо внутрь него дописать следующее:

Тег «Далее»

Рубрики:maven

Установка maven-плагина в eclipse


Эта статья является частичным продолжением предыдущей статьи по установке maven под windows и в ней я расскажу как установить maven в IDE eclipse.

Для установки каких либо плагинов в eclipse есть свой менеджер — eclipse marketplace. Идём в Help->Eclipse Marketplace далее из предложенных репозиториев выбираем репозиторий эклипса и кликаем next. При первом запуске IDE загрузит информацию о имеющихся плагинах,в дальнейшем будет только проверять обновления.

В строке поиска введём maven.После довольно продолжительного поиска выберем для установки Maven Integration for Eclipse и кликнем install.

Будет произведён поиск зависимостей плагина от других плагинов(опять же достаточно долго всё это у эклипса) и отображён их список. Кликаем Next.

Ява попросит подтвердить пользовательское соглашение нечитаем основательно изучаем сие,соглашаемся и снова кликаем Next. эклипс установит плагин и попросит перезагрузиться,что мы и сделаем.

Вот.Теперь плагин установлен,но эклипс поставила нам последнюю верисю 3.0.3. Мы же будем использовать 2.2.1 и нам надо объяснить свои намерения. Для этого идём в Windows->Preferences. В появившемся окне слева выбираем Maven и в раскрывающемся списке выбираем Installations.

Сейчас у нас там выбран embedded 3.0.3 который мы установили через маркет.Нажимаем Add и выбираем путь к дирректории с установленным maven. ставим галочку напротив нового-старого maven-a 2.2.1 который появился.

Теперь поскольку eclipse использует jre а maven-у надо jdk надо показать где оно лежит.Если быть более точным,то jre — это просто виртуальная машина,а jdk — это виртуальная машина и инструменты разработчика.jdk так же включает в себя виртуальную машину,ну да не будем глубоко углубляться.

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

Тег «Далее»

Рубрики:maven

Установка maven под windows


Любой java-разработчик в процессе разработки часто встречается с проблемой подключения сторонних библиотек не существующих в стандартной сборке jdk.К тому же помимо этого часто возникает проблема совместимости версий,плагинов и так далее. Для упрощения жизни разработчикам была создана система автоматизации сборки проектов maven. Это своеобразный «упрощайзер» жизни при установке библиотек для проекта.
В этой статье я расскажу как установить maven для windows.использовать буду maven 2.2.1. С версиями выше\ниже не должно быть проблем либо сильных различий. Итак приступим.
Для начала нам надо скачать maven c официального сайта проекта и разархивировать архив в папку желательно не содержащую русские буквы.
В windows есть свои переменные для обозначения путей к особо важным библиотекам и\или программам. При вызове какой либо программы из другой программы,чтобы было понятнее часто используются эти самые переменные
в этой статье мы будем пользоваться фактически исключительно ими.Точнее мы будем их редактировать и создавать новые.
Кликаем по иконке «мой компьютер» правой кнопкой и выбираем пункт «свойства». Далее если у вас ОС win7 то в появившемся окне надо выбрать пункт «дополнительные параметры системы». Далее действия не зависят от ОС. Выбираем закладку «дополнительно» и там есть заветная кнопка «переменные среды». Появится окно:

Далее нам нужно создать системную переменную JAVA_HOME указывающую на путь к JDK (НЕ к JRE, а к JDK). Если нет jdk качаем и устанавливаем. Должно получиться что-то похожее на:
Таким же образом создаём переменную MAVEN_HOME указывающую на папку с maven-ом. Теперь надо подредактировать переменную Path. откроем её и в поле «значение переменной» поставим ; после последней записи и допишем следующее %MAVEN_HOME%/bin;

 

Здесь мы использовали раннее созданную переменную MAVEN_HOME.
Для проверки работоспособности надо запустить консоль и набрать mvn -version Должно получиться примерно следующее:

C:\>mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800)
Java version: 1.6.0_13
Java home: C:\Program Files\Java\jdk1.6.0_13\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7" version: "5.1" arch: "x64" Family: "windows"
Теперь maven установлен :)
Рубрики:maven