我们正在使用MSBuild来运行构建,它编译并输出了许多.NET项目/程序集。现在我们需要包含一个Java版本的程序集,但不确定如何将其构建整合到MSBuild中。
当然,我们可以选择在命令提示符下执行编译和打包(jar),但是否有其他更优雅的方式来在MSBuild中使用Java构建呢?
当然,我们可以选择在命令提示符下执行编译和打包(jar),但是否有其他更优雅的方式来在MSBuild中使用Java构建呢?
Exec任务是完美的工具。易用,可靠。不确定你所说的“Shell out”是否指的是它。
我正在使用Microsoft的Team Foundation Server Build Extensions Power Tool December 2011。
它有一个用于MSBuild的Ant任务。
文档似乎很少,但它是从Teamprise Build Extensions派生而来,后者有一个漂亮的PDF手册。
@tsu1980的帖子有一个不错的MSBuild代码示例。
https://github.com/sumi2/AntTask
您可以按照以下方式调用Ant脚本
<PropertyGroup>
<JavaHome>$(MSBuildProjectDirectory)\build\tools\jdk1.6.0_25</JavaHome>
<AntHome>$(MSBuildProjectDirectory)\build\tools\apache-ant-1.8.2</AntHome>
</PropertyGroup>
<!-- Call Ant with 'jar' target. -->
<Ant
BuildFile="$(MSBuildProjectDirectory)\YourJavaProject\build.xml"
Target="jar"
AntHome="$(AntHome)"
JavaHome="$(JavaHome)"
/>
创建自己的msbuild任务来编译Java是可能的(我已经用MSBuild创建了一个来编译VB6代码),但这是否是一个好主意是另一个问题..(YAGNI和所有这些)
如果通过命令行运行可以工作,那么这可能只是一个可以接受的事情。
我的直觉告诉我要通过Ant进程来运行外壳,因为Ant对Java有更多的了解。