如何在maven下编译C#解决方案

时间:2011-04-14 12:56:32

标签: c# build maven

我们有一个用Java和C#两种语言实现的应用程序。 Java应用程序使用maven来构建和发布过程,现在我需要将C#的构建集成到maven中。它是使用Visual Studio 2010实现的。有谁知道如何做到这一点?我现在可以使用的最佳插件是什么。非常感谢!

更新

到目前为止,我发现了以下4个选项。有没有人成功使用过这些?另外,我最终需要将构建/发布过程移植到Linux,并且可能使用Mono在maven中编译。非常感谢任何信息,谢谢。

NPanday http://incubator.apache.org/npanday/docs/1.2/guide/maven/project-types.html

http://maven.apache.org/plugins/maven-compiler-plugin/non-javac-compilers.html http://snapshots.repository.codehaus.org/org/codehaus/plexus/plexus-compiler-csharp/1.6-SNAPSHOT/

Maven Dotnet插件 http://maven-dotnet-plugin.appspot.com/

教程: http://docs.codehaus.org/display/MAVENUSER/Using+Maven+to+manage+.NET+projects

1 个答案:

答案 0 :(得分:8)

我在C#/ C ++堆栈中使用Maven。对于maven,一般规则“如果它可以通过命令行完成,它可以在maven中完成”持有,所以我们最终有很多.bat,.exe和powershell“粘合剂”来​​获得所有的碎片一起玩。

通过maven管理C#编译的最佳方法可能是创建一个以powershell脚本或.bat文件的形式提供必要机制的组件。然后,您可以将其作为maven插件发布,或者只是让所有下游组件都向“编译组件”添加依赖项。解决这个问题的语法有点棘手,但在一天结束时,你只是调用csc.exe或类似的东西。

我强烈建议坚持使用基本的maven步骤 - 进程资源,编译,测试,部署,发布 - 以及它们的目的。这将减少C#和Java代码以及构建过程之间的“过程噪音”,因为mvn compile(例如)的含义在所有组件中在概念上保持一致。您最有可能最终生成.zip文件作为工件而不是.jar文件,然后作为复制依赖步骤的一部分解压缩。

在推出时,预计会有很多来自C#家伙的混淆。 Maven对全世界99%的C#/ C ++开发人员完全不熟悉,而且它的过程与传统的MSBuild / TFSBuild / ANT方法完全不同,引起了很多混乱。

希望这有帮助!