jellyの罠

テキストを読みながらmaven.xmlを記述してみた。

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <goal name="myPrj:make">
     <maven:maven
        descriptor="./project.xml"
        goals="clean"/>
  </goal>
</project>


が、エラーとなる。

D:\work\maven\sample>maven myPrj:make
 __  __
|  \/  |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
|_|  |_\__,_|\_/\___|_||_|  v. 1.0.2

Fatal Error [line 6, row 24]: The prefix "maven" for element "maven:maven" is not bound.
org.apache.maven.MavenException: Error parsing plugin script
        at org.apache.maven.plugin.JellyScriptHousing.parse(JellyScriptHousing.java:165)
(以下略)


あれー、と思ったが「Jellyタグを使う場合にはユーザがネームスペースを宣言する必要があります」ということらしい。

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <goal name="myPrj:make" xmlns:m="jelly:maven">
     <m:maven
        descriptor="./project.xml"
        goals="clean"/>
  </goal>
</project>


実行結果

D:\work\maven\sample>maven myPrj:make
 __  __
|  \/  |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \  ~ intelligent projects ~
|_|  |_\__,_|\_/\___|_||_|  v. 1.0.2

build:start:

myPrj:make:
build:start:

clean:clean:
xdoc:clean:

    [delete] Deleting directory D:\work\maven\sample\target
BUILD SUCCESSFUL
Total time: 5 seconds
Finished at: Tue Apr 04 16:47:46 JST 2006


maven.xmlmaven2では廃止されているけれど、まぁとりあえずは使っておこう。