0
私が作成しているこのMavenのアーキタイプでは、artifactIdを入力としてVelocityマクロから文字列値を取得しようとしています。返された文字列は、クラスの名前として割り当てられます。 artifactIdがシングルワードの場合は、最初の文字を大文字にします。 .
で連結された一連の文字列の場合は、最後の単語をとり、最初の文字を大文字にします。Velocityマクロで文字列を連結する方法
#macro(capital $str)
#if($str.contains("."))
#$str.substring($str.lastIndexOf('.')).substring(1,2).toUppercase()$str.substring($str.lastIndexOf('.')).substring(2)
#else
#$str.substring(0,1).toUppercase()$str.substring(1)
#end
#end
#set($className = "#capital($artifactId)")
#set($symbol_pound = '#')
#set($symbol_dollar = '$')
#set($symbol_escape = '\')
package ${package}.client;
public interface ${className} {
//...
}
次に、mvn clean install
でアーキタイプをインストールしました。しかし、この原型から生成されたプロジェクトでは、クラス名は示しています。それは「$のstr.substringのように思える
public interface #$str.substring(0,1).toUppercase()yapp
(1)was correctly executed. However the first part
$(0,1).toUppercase() `やったstr.substringうまくいかない。
どうしたのですか?