使用MSBuild构建Java

6
我们正在使用MSBuild来运行构建,它编译并输出了许多.NET项目/程序集。现在我们需要包含一个Java版本的程序集,但不确定如何将其构建整合到MSBuild中。
当然,我们可以选择在命令提示符下执行编译和打包(jar),但是否有其他更优雅的方式来在MSBuild中使用Java构建呢?
4个回答

2

Exec任务是完美的工具。易用,可靠。不确定你所说的“Shell out”是否指的是它。


“Shell out” 实际上是对 Exec 任务的调用……但这需要我们进行大量手动输入并保持 Java 文件引用正确。我正在寻找一种方法来消除人为因素... - soren.enemaerke
1
不必直接调用javac和jar,您可以调用ant并在build.xml中指定Java部分,将其作为代码库的一部分。 - rsp

1

0
我会编写自定义任务从MSBuild中调用“Ant”。

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)"
 />

0

创建自己的msbuild任务来编译Java是可能的(我已经用MSBuild创建了一个来编译VB6代码),但这是否是一个好主意是另一个问题..(YAGNI和所有这些)

如果通过命令行运行可以工作,那么这可能只是一个可以接受的事情。

我的直觉告诉我要通过Ant进程来运行外壳,因为Ant对Java有更多的了解。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接