[英]Mixed Groovy + Java project causes string syntax clashes
我有一個包含Java和Groovy文件的項目,想要將它們都編譯成.class。
我的Groovy類使用Java類。 Java類之一包含注釋
@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
。 然后類型檢查失敗。
我怎樣才能解決這個問題? 我可以使用其他語法,例如%{...},但我不想這樣做。
您是否嘗試過使用單引號使Groovy不能使用它作為模板?
@ConfigPartDescriptor( name = 'Mail Service ${jndiName}' )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.