2014年2月7日金曜日

linuxのrenameコマンドがファイル名の置換に便利

フォルダにあるファイル名を一括して置換したい場合などに、コマンドラインで便利に置換できるのがrenameコマンド。スクリプトを書かなくてもできず、単純なのでとても楽です。

rename 's/ABC/XYZ/' *.dat

http://stackoverflow.com/questions/1392768/rename-part-of-filename

2014年1月29日水曜日

Mavenでテストのフェーズを無視して実行するには

Mavenでテストのフェーズは完了してるので、ここをスキップしてパッケージしたwarファイルをサーバーにインストールしたい場合などには、便利なオプションがあったのでメモしておきます。

% mvn install -Dmaven.skip.test=true
% mvn package -Dmaven.skip.test=true

結構単純なフラグを指定してやるだけで、テストフォーズをとばしてくれます。便利。

http://www.mkyong.com/maven/how-to-skip-maven-unit-test/

2013年12月18日水曜日

tomcat-maven-pluginでTomcatのmanagerアプリにアクセスする際の認証情報の設定について

MavenでwarファイルをTomcatにインストールして、サーバーを再起動したりするにはtomcat-maven-pluginとTomcatのmanagerアプリの設定で可能です。そして、Tomcatのmanagerアプリにアクセスするには認証情報が必要になるのですが、これをpom.xmlファイルに書いてしまうと、Gitなどのバージョンコントロールシステムで管理するには内容が丸見えなので問題あり。そこで、どこに認証情報を書くのかというと、Mavenにはsettings.xmlとファイルがあるので、ここにサーバー情報を記述。

settings.xml

<servers>
  <server>
    <id></id>
    <username></username>
    <password></password>
  </server>
</servers>

このsettings.xmlのサーバーIDはpom.xmlのtomcat-maven-pluginのサーバー情報と紐付いてる。

2013年12月17日火曜日

Tomcatのmanagerアプリが404でアクセスできない場合

Tomcatの管理ページにアクセスしたら404が出たので、あれっ、tomcat-users.xmlを設定し忘れたかな?と思ったらそういうわけでもない。。。

いろいろ調べていたら、どうやらUbuntuはapt-get install tomcat6-adminでインストールしてあげないといけないらしい。知らんがな、、、

https://help.ubuntu.com/lts/serverguide/tomcat.html

org.hibernate.ObjectNotFoundExceptionがエンティティの@OneToOneの関連性で出てしまう場合の対処方法

Hibernateで1対1の関係にあるエンティティ(@OneToOne)がorg.hibernate.ObjectNotFoundException出てしまう場合、つまりユニークキーに紐付けられたレコードが無いよって場合の対処方法。またもやHibernateのブラックボックス、、、

@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="A_ID")
@NotFound(action=NotFoundAction.IGNORE)

@NotFoundでIGNOREを使ってやると例外無くnullを設定してくれる。

2013年12月13日金曜日

Mavenのmaven-war-pluginのfilterとprofileで変数を設定してやれば、環境毎にwarパッケージを作成できる。

Mavenのmaven-war-pluginとprofileで変数を設定してやれば、環境毎にwarパッケージを作成できます。物凄い便利。

ポイントは、

  1. maven-war-pluginのwebResourceで環境毎に設定したい設定ファイルを列挙
  2. webResourceで列挙したファイルにfilterを使ってやる
  3. profileで環境毎のproperties変数を定義してやる
実行する時は、mvn package -P dev, mvn package -P productionみたいな感じでwarを作成できる。


http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html
http://www.manydesigns.com/en/portofino/portofino3/tutorials/using-maven-profiles-and-resource-filtering
http://erhan.me/2011/10/20/property-substitution-for-web-xml-with-using-profile-properties-maven-pom-xml/

MavenでJavascriptやStylesheetのファイルはYUI compressor Maven MOJOを使う

MavenでJavascriptやStylesheetのファイルはYUI compressor Maven MOJOを使うと便利です。JSやCSSファイルをデフォルトで-minという名前で圧縮してくれるし、aggregationタグでは圧縮したファイルを一括してくれる。

http://alchim.sourceforge.net/yuicompressor-maven-plugin/index.html

ハマったところと言えば、Mavenのライフサイクルのフェーズがprepare-packageじゃないと思った順序でpom.xmlの内容が動作してくれなかった点。