2014-09-30 34 views
1

我想生成一个XML文件,一旦构建完成,我就会将其提供给部署工具。 XML文件的模板是这样的:我的项目(.NET解决方案)中使用Jenkins生成基于构建参数的文件

<Settings> 
    <Version>${BUILD_NUMBER}</Version> 
    .. 
</Settings> 

模板存在,并用来部署该项目作为一个点击一次应用。我试图弄清楚如何让Jenkins将内部版本号推入模板文件,然后我可以使用命令行Exec任务将它提供给应用程序。

是否存在能够从模板生成文件的插件?我可以使用其他什么途径来完成此任务?

+0

你需要一个文件搜索正取代命令行。直到你指明你处于什么样的环境之中,才能告诉你更多。即使Ant可以用来代替标记 – Slav 2014-09-30 15:59:55

+0

@Slav我希望我不会诉诸命令行任务。我有Windows上的主设备(2个构建器)和RHEL上的从设备(也有2个构建器)。我正在使用带有自定义msbuild文件的MSBuild插件来构建项目。你还有什么想要了解环境的? – 2014-09-30 21:35:35

+0

看起来我可以使用我已经安装的MSBuild Community Tasks包中的FileUpdate任务。 – 2014-09-30 21:37:16

回答

2

我发现Jinja2很适合这个。它有一些强大的过滤器,但也可以处理基本模板。顺便提一下,Jinja2是Ansible使用的模板机制。

安装Jinja2的(假设你有一些可用的蟒蛇2.6+工具):

pip install Jinja2 

easy_install Jinja2 

this post,就可以得到该库的Jinja2一个命令行包装我显示简单如下:

curl -LO https://bitbucket.org/tebeka/pythonwise/raw/31769f04bac832f8d781827f55ad6cc4d4ef3c07/jj2.py 
chmod u+x jj2.py 

然后,你设置你的jinja模板文件(让我们的ca LL它集结descriptor.j2):

<Settings> 
    <Version>{{BUILD_NUMBER}}</Version> 
    .. 
</Settings> 

,并在您的工作詹金斯使用此:

jj2.py -v BUILD_NUMBER=${BUILD_NUMBER} build-descriptor.j2 > build-info.xml 
相关问题