Mavenを使用してRAMディスクにプロジェクトを収集します

Javaテクノロジーを使用したWebアプリケーションの開発で10年以上にわたり、私は何人かの仲間のプログラマーに会い、ワークフローの編成方法に精通しました。 そして、驚いたことに、絶対少数派がRAMディスクを使用してプロジェクトを構築することを考えたことがあります。 私はそのような基本的な最適化は私には起こらず、現在のタスク、締め切り、そして単に人生の問題で常に忙しいと思います。



一方、メモリ内のアセンブリには、2つの非常に重要な利点があります。



近年、平均的な開発者のコ​​ンピューター上のRAMの量が大幅に増加し、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>
      
      





また、$ {basedir} / targetを使用できるプロジェクトpomファイルの他の場所にも注意を払う必要があります。



たとえば
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>
      
      







最後のステップは残ります-変​​数$ {target.directory}が必要な値を持ち、pomファイルで指定された値を持たないようにローカルMaven設定を変更します。



Maven構成ファイルを〜/ .m2にコピーします(必要な場合)

 cp /usr/share/maven/conf/settings.xml ~/.m2/settings.xml
      
      





現在のユーザーの「.m2」フォルダー内のsettings.xmlを編集します

 gedit ~/.m2/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>
      
      





以上です。 ビルドがより高速になり、ディスクの耐久性が向上することを願っています。



All Articles