Как я могу скомпилировать решение C # под Maven - PullRequest
7 голосов
/ 14 апреля 2011

У нас есть приложение, реализованное на двух языках, 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 Ответ

8 голосов
/ 14 февраля 2013

Я работаю с Maven в стеке C # / C ++.В случае с maven действует общее правило: «Если это можно сделать из командной строки, это можно сделать и в maven», поэтому в итоге мы получаем множество «клеев» .bat, .exe и powershell, чтобы получить все частииграем вместе.

Вероятно, лучший способ управления компиляциями C # с помощью maven - это создать компонент, обеспечивающий необходимый механизм, в виде сценариев powershell или файлов .bat.Затем вы можете либо опубликовать его как плагин maven, либо просто сделать так, чтобы все нижестоящие компоненты добавляли зависимость к «компоненту компиляции».Синтаксис немного сложен, чтобы разобраться, но в конце концов, вы просто запускаете csc.exe или что-то подобное.

Я очень рекомендую придерживаться основных шагов maven - process-resources, компилировать, тестировать, развертывать, выпускать - и что они должны делать.Это уменьшит «шум процесса» между C # и кодом Java и процессами сборки, поскольку значение компиляции mvn (например) останется концептуально согласованным для всех компонентов.Скорее всего, в конечном итоге вы создадите файлы .zip в виде артефактов вместо файлов .jar, а затем разархивируете их как часть этапа копирования-зависимости.

При развертывании ожидайте ОЧЕНЬ путаницы от ребят из C #.Maven совершенно незнаком 99% разработчиков C # / C ++ в мире, и его процесс достаточно сильно отличается от традиционного подхода MSBuild / TFSBuild / ANT, что вызывает много путаницы.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...