我有一个Jenkins作业,它调用gradle
脚本从源代码创建 .war 文件。
gradle war
命令生成名为Geo-1.0.5.war
的文件,因为build.gradle
使用版本号:
war {
baseName = 'Geo'
version = '1.0.5'
}
此文件将使用“通过SSH插件发布”通过SSH复制和部署在Wildfly服务器上。
如何告诉插件war文件名格式类似于Geo- $ gradle_version .war?
答案 0 :(得分:1)
如果您点击"源文件"旁边的(?)
帮助图标,则会记录此信息。詹金斯内部的领域:
该字符串是以逗号分隔的Ant文件集的包含列表,例如。
**/*.jar
(参见Ant手册中的Patterns)。
因此,在您的情况下,您可以使用**/Geo-*.war
作为源模式。
这也显示在plugin wiki page的屏幕截图中,以及链接的"发布..."的Source Files和Examples部分。文档。
在您对此答案的评论中,您提到您不想传达文件名是"类似于Geo- $ gradle_version.war"用于上传,而是想在SSH主机上执行的脚本中使用确切的文件名。
您可以通过添加确定文件名的Execute Shell步骤,并使用EnvInject Plugin将其导出为环境变量来执行此操作。例如:
f=$(basename `find . -name 'Geo-*.war'`)
echo WAR_FILENAME=${f} > env.properties
然后,通过使用Inject Environment Variables步骤并将其路径设置为env.properties
,WAR_FILENAME
值将添加到构建环境中,可供后续步骤使用。
在SSH发布步骤的Exec Command字段中,您可以使用${WAR_FILENAME}
来引用上传的确切文件名。