Maven/Gradle 为编译设置环境变量?

Maven/Gradle set environment variable for compilation?

我开发了一个注释处理器,它可以选择需要项目的 artifactId 来生成文件。我正在使用环境变量 (GRAPHDEP_USAGE) 来获取值。

我可以在启动前从shell设置环境变量Maven/Gradle,但我希望构建工具在编译前为我设置环境变量:

我试了几个选项都没有成功。知道我该怎么做吗?

不完全回答问题,但实际上回答了如何将参数传递给注释处理器的问题。


可以使用 -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()