人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apache Maven1.0.2 の maven.xml(Jellyスクリプト)についての質問です。

以下のような独自ゴールを書いたのですが、maven.xml 4行目のif分岐が
思ったように動作しません。

○maven.xml
1: <project xmlns:j="jelly:core" xmlns:ant="jelly:ant" default="hoge">
2: <goal name="hoge">
3: <echo message="hoge.value = '${hoge.value}'"/>
4: <j:if test="${hoge.value == 'yes'}">
5: <echo message="YES"/>
6: </j:if>
7: <j:else>
8: <echo message="NO"/>
9: </j:else>
10: </goal>
11: </project>

○project.properties
1: hoge.value = yes

○実行結果
bash-3.1$ maven hoge
:
build:start:
hoge:
[echo] hoge.value = 'yes'
<j:else> [echo] NO
BUILD SUCCESSFUL
Total time: 3 seconds

実行結果のように、プロパティhoge.valueの値は取れているのですが、
それを${hoge.value == 'yes'}で評価するとfalseになってしまいます。

文字列評価式の書き方がまずいのでしょうか?
既存のプラグインのmaven.xmlを見ても、同様の評価式を良く見るのですが。。。

原因及び対処法をご存知でしたらご教授下さい。

環境は以下の通りです。
・OS・・・Windows XP Pro
・J2SE・・・JavaSE5.0
・Maven・・・1.0.2

よろしくお願いします。

●質問者: F57PB
●カテゴリ:コンピュータ インターネット
✍キーワード:Apache bash ECHO hoge J2SE
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● miyamuko
●60ポイント

ドキュメント探したのですが見つからないですねぇ。。。

project.properties の値を参照するには、以下のように context.getVariable を使うか、

<j:if test="${context.getVariable('hoge.value') == 'yes'}">

一旦、j:set で変数に設定すればよさそうです。

<j:set var="hogeValue" value="${hoge.value}"/>
<j:if test="${hogeValue == 'yes'}">
◎質問者からの返答

調査して頂き、ありがとうございましす。

ご提示頂いた2つの方法で試したところ、いずれもうまく動作しました。

ただ、解せないのは ${hoge.value == 'yes'}でも、以前は動作していたんです。。。

それが急に動作しなくなりました。

この間にどこをどう変更したかは覚えていないのですが、

何らかのライブラリのバージョンが変わった(Mavenで自動的にダウンロードされて)

のかもしれません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ