Skip to main content

Вкратце о Maven

Maven - это инструмент сборки java проекта: компиляции, создания jar, ...
Бонусы:
- управление зависимостями
- декларативное описание проекта.

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

Создание проекта с использованием archetype:generate: http://www.apache-maven.ru/webapp.html

Зависимость в pom.xml

Используемые библиотеки указываются в pom.xml с помощью своих "координат": groupIs, artifactId и номера версии.
<dependency>
  <groupId>org.javassist</groupId>
  <artifactId>javassist</artifactId>
  <version>3.13.0-GA</version>
  <scope>compile</scope>
</dependency>

<scope> - область действия зависимости:
compile - зависимость доступна и при компиляции и при запуске;
provided - зависимость доступна только при компиляции. Например, servlet-api - не нужна в конечном архиве, поставляемом заказчику, её предоставит контейнер сервлетов.

Полезные ключи


-rf  [resume from]  - неудача в сборке проектов? возобновить начиная с <project_name>
-pl        - собрать только некоторые проекты
-am   [also make] - собрать также проекты, зависящие от этого
-amd   [also make dependent]  - собрать также проекты, от которых зависит этот

-Dmaven.test.skip=true - пропустить выполнение тестов

TODO: примеры с ключами?


Ключи для log level

По умолчанию, maven выводит info level.
-X    - вывод debug level


-q [quiet]  - вывод error level - только ошибки

Deploy артефакта в maven-репозиторий

mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc14.jar -Durl=http://<ip_address:port>/nexus/content/repositories/thirdparty -DrepositoryId=thirdparty

settings.xml file in HOME_DIRECTORY\.m2. Add following lines to the file. {username} and {password} are your credentials at Nexus.
<settings>
  ...
  <servers>
    ...
    <server>
      <id>Snapshots</id>
      <username>{username}</username>
      <password>{password}</password>
    </server>
    <server>
      <id>Releases</id>
      <username>{username}</username>
      <password>{password}</password>
    </server>
      <server>
      <id>thirdparty</id>
      <username>{username}</username>
      <password>{password}</password>
    </server>
  </servers> 
  ...
</settings>

Тесты JUnit


Для выполнения тестов на test phase используется maven-surefire-plugin.

Итак вы набрали mvn test, а maven не видит тесты. Упорно пишет:
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0.
На странице Surefire говорится, что для исполнения тестов необходимо:
  1. Создать dependency на JUnit в pom.xml
  2. Создать тесты в директории для тестов - по умолчанию src/test/java.
Однако, как оказалось, нужно еще соблюдать правила именования классов:
  • Test*
  • *Test
  • *TestCase
Хотите другую директорию или другие имена, тогда обратите внимание на параметры includes и testSourceDirectory для Surefire: http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html

Surefire по-русски и отказ от выполнения тестов: http://www.apache-maven.ru/plugins/maven-surefire-plugin.html


Comments

Popular posts from this blog

Блочный, строчный, ...

Сборник советов: 1. Прижать элемент к нижнему краю контейнера: 2 . Две колонки: 3 . Что означает символ ">" в селекторе? Означает, что будут выбраны только прямые потомки. По-умному, direct descendant combinator. Иными словами, если есть: То "div a {color: blue;}" изменит цвет всех ссылок, а "div > a {color: blue;}" - только первой и третьей. 4 . TODO

Hibernate

1. Hibernate Session . Javadoc называет её главным интерфейсом между java-приложением и Hibernate. Иногда её называют единицей работы или логической транзакцией. Основная функция сессии - обеспечить операции создания, чтения, удаления объектов. Объекты могут находиться в одном из 3 состояний (см. 2) Сессия создается с помощью SessionFactory. SessionFactory знает конфигурацию ORM, её внутреннее состояния immutable. При вызове Configuration().configure() загружается файл hibernate.cfg.xml. После того, как конфигурация загружена, можно изменить настройки программно. Данные корректировки возможны только до создания экземпляра фабрики сессий. // Initialize the Hibernate environment Configuration cfg = new Configuration().configure(); // Create the session factory ServiceRegistryBuilder srb = new ServiceRegistryBuilder(); ServiceRegistry sr = srb.applySettings(cfg.getProperties()).buildServiceRegistry(); SessionFactory factory = cfg.buildSessionFactory(sr); // Obtain the new session obj...

Первые шаги в Selenium

Цель расплывчата: понять и сделать хоть что-нибудь =) Selenium Selenium - группа продуктов. Отличное описание в статье Что такое Selenium? Selenium IDE - плагин для Firefox, позволяет записать тест, выполняя действия в браузере. Казалось бы, Selenium WebDriver должен дать больше возможностей: всё таки не из графического интерфейса тесты пишем, а с помощью языка программирования, но интересная мысль в другой статье того же автора  Что такое Selenium WebDriver? : "... WebDriver не имеет прямого отношения к тестированию. Он всего лишь предоставляет автотестам доступ к браузеру. На этом его функции заканчиваются.Структурирование, группировку и запуск тестов, а также генерацию отчётов о тестировании, обеспечивает фреймворк тестирования, такой как JUnit или TestNG для Java, .."  Локаторы Выбрать элемент на странице можно используя локаторы. Локаторы (в Selenium IDE в поле target) используют DOM, XPath или CSS (или просто ищут по id/name). Полезное: XPath: XML Path La...