Gestion de projet C # avec Maven
Quelqu'un avait une expérience de la gestion C# en fonction des projets avec Maven?
Si oui , merci de me dire quelques mots à ce sujet , bizarre comment serait-il créer une telle installation.
Grâce
source d'informationauteur Roman | 2010-02-17
Vous devez vous connecter pour publier un commentaire.
Maven est un langage agnostique et il devrait être possible de l'utiliser avec d'autres langages que Java, notamment en C#. Par exemple, le Maven Compilateur Plugin peut être configuré pour utiliser le
c #
compilateur. Il y a aussi un .NET plugin Maven et il y avait un maven-csharp sur javaforge.com (il semble "mort").Mais Java est d'obtenir le plus d'attention et le pouvoir de l'homme et il n'y a pas beaucoup fait avec d'autres langues. Ainsi, alors que l'aide de Maven avec le C# est en théorie possible, je ne m'attends pas beaucoup de soutien et de rétroaction de la communauté (c'est à dire en cas de problème, vous serez seul). Je ne sais pas si l'utilisation de Maven pour C# serait donc une bonne idée. Je ne le recommande pas en fait (j'ai peut-être tort, bien sûr).
Je travaille avec une suite de C# et C++ les composants et les applications que les dépendances sont gérées via maven. La règle générale de "Si elle peut être effectuée via la ligne de commande, il peut être fait dans maven" tient, nous avons donc beaucoup de .chauve-souris, .exe et powershell "colle" pour obtenir tous les morceaux à jouer ensemble.
Le plus gros problème avec l'utilisation de maven pour une pile de Microsoft est un manque de familiarité avec la construction/déploiement/ALM cycle pour TOUT nouveau développeur. Vous pouvez trouver de nombreux développeurs avec MSBuild, TFSBuild, FOURMIS, etc., de l'expérience, mais c'est une chose rare de trouver un C# ou C++, dev qui a travaillé avec maven dans un pur Microsoft boutique. Le lancement de maven pour la gestion de la dépendance et du processus de construction est par conséquent extrêmement difficile, car vous finissez par passer BEAUCOUP de temps à la formation des développeurs (quelle est la différence entre une photo et une libération?), plus-rendre modulaires le produit, puis le passage à l'échelle de retour pour obtenir ce droit, etc.
J'ai trouvé aussi que nous avons eu à travailler autour de maven pour faire quelque chose de ressemblant à l'intégration continue et continue de livraison. Environ 70% de notre technologie de la pile est C# (le reste étant C++), et nous voulons déployer plus de que d'assurance de la qualité des serveurs tous les soirs avec la dernière-et-le plus grand code par défaut. Pour équilibrer la valeur de release vs dev de la productivité via des snapshots, nous avons terminé la construction d'un processus de construction où nous créer une version release de chaque composant, chaque nuit, suivi d'un instantané de construire. Ce que les développeurs de ne pas avoir à vous soucier de se cogner POMs de consommer des instantanés dans la matinée. Dans l'ensemble, c'est une douleur royale, au moins pour quelqu'un qui vient de la forte intégration continue, "construire et déployer tout" environnements.
Maven est titulaire d'un lot de promesses pour la gestion de la dépendance et l'isolement des dernières modifications (en particulier dans les composants de l'interface où le consommateur et producteur d'accord). Ces problèmes ont été résolus par d'autres moyens (svn externes, le déploiement s'appuie, la version de l'interface de gestion, etc.). Mais il est relativement agréable à télécharger n'importe quel composant, exécuter "mvn compile", et voir le code de la compilation (en supposant un niveau de base pour construire la portabilité). Pour moi, cependant, les frais généraux et les méta-conversations au sujet d'obtenir le droit de construire (plutôt que de se concentrer sur la valeur de la clientèle) de minimiser la valeur de maven dans l'ensemble.
Vous pouvez également consulter NPanday (c'est un projet que je suis impliqué dans). Même si elle a encore besoin de quelques travaux pour harmoniser plus étroitement à Maven de meilleures pratiques, il est le plus complet et le plus actif de rechange disponible maintenant. Une fonctionnalité qui est unique, c'est l'existence d'un complément Visual Studio pour générer le bon
pom.xml
à partir de l'IDE.Pour .NET de Base, vous pouvez utiliser le dotnet-maven-plugin qui entraîne le
dotnet
etnuget
commandes, ainsi que l'ajout du support pour le nettoyage, libérant etc. dans le "Maven".Voici un exemple de configuration du plugin:
(Notez le type d'emballage mis à dotnet).
Ce sera ensuite lu par le projet.fichier json et exécuter dotnet et nuget commandes selon les phases du cycle de vie de maven telles que la propreté, compiler, tester, installer etc.
Il y a un NMaven projet sur codeplex, mais il ne semble pas être actif ou populaire. Voir aussi ces questions:
.NET
pour la .NET monde?
maven-compiler-plugin avec plexus-compilateur-csharp fonctionne très bien avec la configuration suivante. Bien sûr, vous aurez à point à un compilateur C# sur votre ordinateur avec le "exécutable" paramètre.