2014-09-30 51 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 
相關問題