1

Java ファイルと Groovy ファイルを含むプロジェクトがあり、両方を .class にコンパイルしたいと考えています。

私の Groovy クラスは Java クラスを使用します。Java クラスの 1 つに注釈が含まれています

@ConfigPartDescriptor(
    name = "Mail Service ${jndiName}"
)
@XmlRootElement(name = "mbean")
@XmlAccessorType(XmlAccessType.NONE)
public final class MailServiceBean extends MBeanJaxbBase<MailServiceBean> implements IConfigFragment, Origin.Wise {

これはJavaでは問題ありませんが、Groovyはファイルをコンパイルしていないにもかかわらず、不平を言います:

Failed to execute goal org.codehaus.gmaven:gmaven-plugin:1.5:compile (compile-groovy-classes) on project AsMigrator: startup failed:
file:/home/ondra/work/AS/Migration/git-repo/src/main/java/org/jboss/loom/migrators/_groovy/TestJaxbBean.groovy: 20: Expected 'Mail Service $jndiName' to be an inline constant of type java.lang.String in @org.jboss.loom.spi.ann.ConfigPartDescriptor
@ line 20, column 12.
name = "Mail Service ${jndiName}"

Maven GMaven プラグインの使用。(Eclipse Groovy コンパイラーは同じことで失敗します。)

私の推測では、Groovy コンパイラーが注釈を処理し、 を見て、 の代わりに を${...}作成します。そして、型チェックが失敗します。GroovyStringString

どうすればこれを修正できますか? %{...} などの別の構文を使用することもできますが、使用しないほうがよいでしょう。

4

1 に答える 1

2

Groovy がテンプレート化しないように単一引用符を試しましたか?

@ConfigPartDescriptor( name = 'Mail Service ${jndiName}' )
于 2013-06-14T08:09:37.950 に答える