在 AWS 中动态创建的 jenkins slave 中配置 settings.xml
Configure settings.xml in jenkins slave created on the fly in AWS
我正在动态创建 Jenkins Slave,并在 AWS 上使用 Spot 实例配置它。
在全局工具配置中,我已经设置为使用我自己的"settings.xml"因为大师完美运行
但是当服务器启动 slaves(没有安装 maven)时它会自动安装 maven(在 Jenkins 文件中设置以安装这个工具)但是没有放置任何 settings.xml
*我知道我可以直接从服务器复制 setting.xml 但对我来说这似乎不是合适的方法。
* 我已经做了 mvn -X 以查看找到设置的文件夹,但这没有被使用。
添加了一小部分 jenkinsfile
pipeline {
tools{
maven 'maven default'
}
agent any
stages {
stage('Maven build') {
steps {
sh 'mvn clean install'
}
}
}
}
您必须使用 withMaven()
in the Pipeline code..它必须看起来像这样:
withMaven(jdk: jdkName, maven: MavenInGlobalToolsName, mavenSettingsConfig: 'IdInConfigFileProvided', mavenLocalRepo:".repository") {
sh "mvn clean verify"
}
IdInConfigFileProvided
是引用配置文件提供程序插件的重要部分...
另一个解决方案可能是使用 Jenkins 文件中的 config file provider directly:
configFileProvider(
[configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -s $MAVEN_SETTINGS clean package'
}
但是这个解决方案不会处理对 Maven 本身的支持全局工具支持。所以我建议更喜欢 withMaven()
解决方案。
我正在动态创建 Jenkins Slave,并在 AWS 上使用 Spot 实例配置它。 在全局工具配置中,我已经设置为使用我自己的"settings.xml"因为大师完美运行
但是当服务器启动 slaves(没有安装 maven)时它会自动安装 maven(在 Jenkins 文件中设置以安装这个工具)但是没有放置任何 settings.xml
*我知道我可以直接从服务器复制 setting.xml 但对我来说这似乎不是合适的方法。 * 我已经做了 mvn -X 以查看找到设置的文件夹,但这没有被使用。
添加了一小部分 jenkinsfile
pipeline {
tools{
maven 'maven default'
}
agent any
stages {
stage('Maven build') {
steps {
sh 'mvn clean install'
}
}
}
}
您必须使用 withMaven()
in the Pipeline code..它必须看起来像这样:
withMaven(jdk: jdkName, maven: MavenInGlobalToolsName, mavenSettingsConfig: 'IdInConfigFileProvided', mavenLocalRepo:".repository") {
sh "mvn clean verify"
}
IdInConfigFileProvided
是引用配置文件提供程序插件的重要部分...
另一个解决方案可能是使用 Jenkins 文件中的 config file provider directly:
configFileProvider(
[configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -s $MAVEN_SETTINGS clean package'
}
但是这个解决方案不会处理对 Maven 本身的支持全局工具支持。所以我建议更喜欢 withMaven()
解决方案。