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 コンパイラーが注釈を処理し、 を見て、 の代わりに を${...}
作成します。そして、型チェックが失敗します。GroovyString
String
どうすればこれを修正できますか? %{...} などの別の構文を使用することもできますが、使用しないほうがよいでしょう。