Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Собираем план на RAM-диск при помощи Maven

Anna | 3.06.2014 | нет комментариев
За 10 лет разработки веб-приложений с применением спецтехнологий Java я поспел повидать большое число коллег-программистов и познакомиться с их способами организации рабочего процесса. И, к моему изумлению, безусловное меньшинство когда-либо задумывалось над применением RAM-диска для сборки планов. Я думаю, что такая элементарная оптимизация легко не приходит в голову, непрерывно занятую нынешними задачами, дедлайнами и легко жизненными задачами.

А между тем, сборка в память владеет двумя дюже существенными превосходствами:

  • Существенное увеличение скорости сборки за счет отсутствия операций ввода-итога на грубый диск
  • Увеличение времени жизни вашего SSD за счет перемещения насыщенных операций записи в память

Если учесть, что в последние годы крепко подрос объем оперативной памяти на компьютере среднестатистического разработчика и повсюду начинают использоваться SSD, то доводов «вопреки» фактически не остается.

Основная цель этой маленький статьи — вызвать мысль: «А чай подлинно! И как я прежде об этом не подумал?».

Я опишу пример реализации такого подхода в Linux. Действия в других операционных системах будут фактически одинаковыми, за исключением способов создания самого RAM-диска.

Создание RAM-диска

Отредактируем файл /etc/fstab при помощи вашего любимого редактора, скажем:

gksudo -k gedit /etc/fstab

Добавим в него сроку

tmpfs /tmp tmpfs mode=1777 0 0

Я выбираю монтировать на RAM-диск папку /tmp и в ней же собирать все планы, это дает дополнительное превосходство — временные файлы других программ также не применяют SSD-диск. Дополнительным счастливым фактом является то, что каждый мусор удаляется механически при перезагрузке компьютера.

Настройка Maven

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

<project>
...
    <properties>
        <target.directory>${basedir}/target</target.directory>
    </properties>
...
    <build>
        <directory>${target.directory}</directory>
        ...
    </build>
...
</project>

Также следует обратить внимание на другие места в pom-файлах плана, которые могут применять ${basedir}/target.

Скажем на

jetty-maven-plugin

<plugin>
    <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.0.6.v20130930</version>
     <configuration>
         <war>${target.directory}/myproject-web</war>
         <classesDirectory>${target.directory}/classes</classesDirectory>
         <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>
         <webApp>
             <contextPath>/</contextPath>
             <jettyEnvXml>${basedir}/src/main/resources/jetty-env.xml</jettyEnvXml>
              <defaultsDescriptor>${basedir}/src/main/resources/webdefault.xml</defaultsDescriptor>
              <descriptor>${basedir}/src/main/webapp/WEB-INF/web.xml</descriptor>
          </webApp>
          ...
    </configuration>
         ...
</plugin>

Остался конечный шаг — метаморфоза локальных настроек Maven для того, Дабы переменная ${target.directory} имела необходимое вам значение, а не значение, указанное в pom-файле.

Отредактируем settings.xml в папке Maven

gksudo -k gedit /usr/share/maven/conf/settings.xml

Сделаем новейший профиль

<profiles>
...
    <profile>
      <id>RAMBuild</id>
      <properties>
        <target.directory>/tmp/maven/${project.groupId}.${project.artifactId}/target</target.directory>
      </properties>
    </profile>
...
</profiles>

Добавим новейший профиль в список энергичных:

<activeProfiles>
    ....
    <activeProfile>RAMBuild</activeProfile>
    ....
</activeProfiles>

Вот и все. Верю, сейчас ваши билды будут стремительней, а диски долговечнее.

Источник: programmingmaster.ru

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB