簡體   English   中英

Maven / Gradle設置環境變量進行編譯?

[英]Maven/Gradle set environment variable for compilation?

我開發了一個批注處理器,可以選擇需要項目的artifactId來生成文件。 我正在使用環境變量( GRAPHDEP_USAGE )獲取值。

我可以在啟動Maven / Gradle之前從shell設置環境變量,但是我希望構建工具可以在編譯之前為我設置環境變量:

  • 對於Maven ,在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.

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