sql-maven-pluginでencodingを指定したい! (完結編)
http://d.hatena.ne.jp/nobeans/20080423/1208914200 の続き。
↓リビジョン5535で、dantran氏がencodingを公開パラメータに変更したようだ。
コミットログは↓。
5355 annotated / raw | Diffs: previous, other | Lines: 1012 ( +14, -2 )
Created: 2007-10-16 00:21:08 -0500 (6 months ago) | Author: dantran | Changeset: 5355
MOJO-849: expose encoding property
Properties
svn:eol-style = native
svn:keywords = "Author Date Id Revision"
FishEye: history mojo/trunk/mojo/sql-maven-plugin/src/main/java/org/codehaus/mojo/sql/SqlExecMojo.java
ってことで、2007-10-16に対応したのか。
んで、その後plugin.xmlの再生成を忘れたかなんかして、古いままだと。
いや、もしかして、1.0リリースの後に、この対処をしたまま、まだ次の1.1がリリースされていないだけ?
バグチケットも見つけた。
Created: 12/Jul/07 03:02 AM Updated: 04/Jan/08 03:06 PM
[#MSQL-4] Fix encoding property - jira.codehaus.org
アノテーションつけたということで、クローズされちゃったね。
案外最近なのか...。単に1.1リリースを待てってことなのかなぁ。
ということは....、SNAPSHOTが公開されてるリポジトリから1.1-SNAPSHOTをとってくればいいってこと?
Codehausのスナップショットリポジトリを見つけた。
http://hirobiro.dip.jp/pukiwiki/index.php?Maven2%2FSNAPSHOT
んで、色々試してみた結果....
できた!!!!!
手元のpom.xmlをいじるだけでOKなので、こっちの方がいいな。
ってことで、まとめます。
対処方法のまとめ
pom.xmlのproject要素直下に以下のリポジトリを追加する。
<pluginRepositories> <pluginRepository> <id>Codehaus Snapshots</id> <url>http://snapshots.repository.codehaus.org/</url> </pluginRepository> </pluginRepositories>
process-resourcesフェーズか、process-test-resourcesフェーズに、sql-maven-pluginを仕掛ける。
<build> <finalName>Database initializing</finalName> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sql-maven-plugin</artifactId> <!-- 明示指定しなくてもバージョンが新しい1.1-SNAPSHOTが使わるが、心配であれば明示指定する --> <!-- <version>1.1-SNAPSHOT</version> --> <dependencies> <dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> <version>10.3.2.1</version> </dependency> </dependencies> <configuration> <driver>org.apache.derby.jdbc.EmbeddedDriver</driver> <url>jdbc:derby:db/sample;create=true</url> <encoding>utf-8</encoding><!-- SQLファイルのエンコーディングを指定する!! --> <autocommit>true</autocommit> </configuration> <executions> <execution> <id>recreate-db</id> <phase>process-resources</phase><!-- 対象フェーズを指定する --> <goals> <goal>execute</goal> </goals> <configuration> <fileset> <basedir>${basedir}</basedir> <includes> <include>db/01-dropdb_derby.sql</include> <include>db/02-createdb_derby.sql</include> <include>db/03-datas_derby.sql</include> </includes> </fileset> <onError>continue</onError> <skip>false</skip> </configuration> </execution> </executions> </plugin> </plugins> </build>
これだけでOK.
ハマってたところからの最小手順でいえば、pluginRepositoriesを追加することだけだったと.....orz
何はともあれ、これで標準的なmaven2の環境があれば、「みんな、mvn jetty:runするだけでいいんだぜ!」といえるようになった。
やった!!!