[英]Maven/Gradle set environment variable for compilation?
我開發了一個批注處理器,可以選擇需要項目的artifactId
來生成文件。 我正在使用環境變量( GRAPHDEP_USAGE
)獲取值。
我可以在啟動Maven / Gradle之前從shell設置環境變量,但是我希望構建工具可以在編譯之前為我設置環境變量:
pom.xml
我想在啟動compile
目標之前用${artifactId}
的內容填充環境變量GRAPHDEP_PROJECT
。 build.gradle
我想填充環境變量GRAPHDEP_PROJECT
與內容project.name
,啟動任務之前compileJava
。 我嘗試了幾種選擇,但均未成功。 知道我該怎么做嗎?
不是完全回答問題,而是實際上回答了后面的問題,即如何將參數傳遞給注釋處理器。
可以使用-A
標志指定編譯器參數。
在Gradle中 :
compileJava.options.compilerArgs += "-Agraphdep.project=${project.name}"
在Maven中 :
<compilerArgs>
<arg>-Agraphdep.project=${project.artifactId}</arg>
</compilerArgs>
然后,可以從AbstractProcessor
的實現中使用以下方法檢索參數:
processingEnv.getOptions().get("widget");
處理器必須聲明支持的選項,方法是使用批注@SupportedOptions({"widget"})
或重寫方法public Set<String> getSupportedOptions()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.