这一直困扰着我一段时间,有一个包含环境变量的列表,我想在我自己的自定义插件上的一个构建的配置中使用它们,例如:
因此,在这种情况下,我希望${WORKSPACE}
解析为环境已配置的路径。
有人知道怎么做吗?我似乎找不到它作为果冻标签。
这一直困扰着我一段时间,有一个包含环境变量的列表,我想在我自己的自定义插件上的一个构建的配置中使用它们,例如:
因此,在这种情况下,我希望${WORKSPACE}
解析为环境已配置的路径。
有人知道怎么做吗?我似乎找不到它作为果冻标签。
您要求的变量扩展类型只能由构建步骤本身执行。如果这是您自己的插件,那么您可以应用我在此处建议的更改,否则您可以随时要求插件作者这样做。缺少任何一种,您都必须依赖 Slav 提供的解决方法。
如果您确实可以访问插件的源代码,那么这里是在执行构建步骤期间如何扩展变量的方法。我假设构建步骤类是 SanityTestResultsToJUnitXMLBuilder。在此类的perform
方法中,您需要扩展源目录和目标目录字段。为简洁起见,我为您通常在构建步骤中找到的其他代码添加了占位符。
public class SanityTestResultsToJUnitXMLBuilder extends Builder {
private final String sourceDirectory;
private final String destinationDirectory;
/* Constructor and getters typically appear here. */
@Override
public void perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
EnvVars environment = build.getEnvironment(listener);
String expandedSourceDirectory = environment.expand(sourceDirectory);
String expandedDestinationDirectory = environment.expand(destinationDirectory);
/* The rest of the perform() logic goes here */
}
/* Other methods typically appear here. */
/* The Descriptor typically appears here. */
}
不确定您到底要什么,但您可以$WORKSPACE
通过以下方式获取环境变量:
def workspace = manager.build.getEnvVars()["WORKSPACE"]