C#使用Maven管理项目有没有人有使用Maven管理C#项目的经验?如果是,请告诉我一些相关信息,创建这样的设置会有多奇怪。感谢Maven与语言无关,它应该可以与Java以外的其他语言一起使用,包括C#。例如,Maven编译器插件可以配置为使用csharp编译器。还有一个.NETMaven插件,javaforge.com上有一个maven-csharp(好像已经死了)。但是Java得到的关注度和人力最多,其他语言做得不多。因此,虽然理论上可以使用Maven和C#,但我不希望社区提供太多支持和反馈(例如,遇到问题,您将只能靠自己)。我不知道将Maven用于C#是否是个好主意。我实际上并不推荐它(当然我可能是错的)。我使用一套C#和C++组件以及通过Maven依赖项管理的应用程序。一般规则“如果它可以从命令行完成,它可以在maven中完成”,所以我们最终得到了很多.bat、.exe和powershell“胶水”来让所有的部分一起玩。将Maven用于Microsoft堆栈的最大问题是对任何新开发人员来说完全不熟悉构建/部署/ALM周期。您可以找到许多具有MSBuild、TFSBuild、ANT等方面经验的开发人员,但很难在纯Microsoft商店中找到使用maven的C#或C++开发人员。因此,为依赖管理和构建过程推出Maven非常困难,因为您最终会花费大量时间培训开发人员(快照和发布之间有什么区别?),过度组件化产品然后将其缩小以使其正确等。我还发现我们必须围绕maven工作并做诸如持续集成和持续交付之类的事情。我们大约70%的技术堆栈是C#(其余是C++),我们希望每晚都使用最新最好的代码将我们的大部分技术部署到QA服务器。为了通过快照平衡发布构建的价值和开发生产力,我们最终构建了一个构建过程,我们每晚创建每个组件的发布构建,然后是快照构建。这使开发人员不必担心在早上访问POM以使用快照。总的来说,这是一个巨大的痛苦,至少对于来自强大的持续集成、“构建和部署一切”环境的人来说是这样。Maven在依赖管理和隔离中断更改方面有很多承诺(特别是在消费者和生产者必须同意的接口组件中)。这些问题已经通过其他方式解决(svnexterns、部署版本、接口版本管理等)。但下载任何组件、运行“mvncompile”并查看代码编译(假设构建可移植性的基本水平)相对较好。但对我来说,关于正确构建的开销和元对话(而不是关注客户价值)最小化了Maven的整体价值。对于.NETCore,您可以使用dotnet-maven-plugin来驱动dotnet和nuget命令并添加对例如以“Maven方式”清理、发布等。下面是一个示例插件配置:[...]dotnet[...]org.eobjects.builddotnet-maven-plugin0.11true[...](注意打包类型设置为dotnet)。然后,这将从project.json文件中读取并基于maven生命周期阶段运行dotnet和nuget命令,例如清理、编译、测试、安装等。您还可以查看NPanday(这是我参与的项目).虽然它仍然需要一些工作来更紧密地与Maven的最佳实践保持一致,但它现在是最完整和最活跃的替代方案。它的一个独特功能是存在一个VisualStudio插件,用于从IDE生成正确的pom.xml。codeplex有一个NMaven项目,但它似乎并不活跃或不受欢迎。另请参阅以下问题:使用plexus-compiler-csharp的maven-compiler-plugin在以下配置下工作正常。当然,您必须使用“可执行”参数指向您计算机上实际的C#编译器。以上就是《C#学习教程:使用Maven进行C#项目管理》的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注—org.apache.maven.pluginsmaven-compiler-plugin3.0csharptrueC:WindowsMicrosoft.NETFramework64v4.0.30319csc.exemyDLLorg.codehaus.plexusplexus-compiler-csharp2.2本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
