簡體   English   中英

Groovy + Java混合項目導致字符串語法沖突

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM