Использование подрывной деятельности и Нанта для строительства. У меня есть основной проект, который зависит от нескольких подпроектов. Суб-проекты существуют как отдельные проекты внутри подрывной деятельности.Нант: строительные проекты с использованием svn-externals
Мой вопрос: Должен ли скрипт nant build в основном проекте создавать все связанные проекты и сам по себе? Или подпроекты знают, как строить себя, и я как-то называю файлы сборки подпроектов из основного файла сборки и каким-то образом собираю весь вывод в основной сбор данных проекта?
В настоящее время у меня есть файл сборки mainproject, который создает все подпроекты. То есть, у меня есть определенные цели для каждого подпроекта в файле сборки. Однако это создает плотную связь между основным файлом сборки и подпроектами. Было бы неплохо, если бы я мог просто сказать, что «подпроекты знают, как строить себя», и попросить их построить себя из основного проекта и собрать выход.
Для справки, мой репозиторий выглядит следующим образом:
/Repo
/MainProject
/trunk
/doc <-- documentation
/lib <-- binary-only DLLs (usually 3rd party)
/src <-- source code for MainProject
/svn-externals <-- hold references to other projects in repository
...
/ClassLib1
/trunk
/doc
/lib
/src
/svn-externals
...
/ClassLib2
/trunk
/doc
/lib
/src
/svn-externals
...
/ClassLibCommon
/trunk
/doc
/lib
/src
/svn-externals
Я потянув в суб-проектов с использованием подрывной СВН-внешние свойства. Поэтому моя рабочая копия такова:
/MainProject
/build
/doc
/lib
/src
/MainProject
/svn-externals
/ClassLib1 <-- svn external to svn://xyz/repo/ClassLib1/trunk
/doc
/lib
/src
/svn-externals
/ClassLibCommon <- svn external to svn://xyz/repo/ClassLibCommon/trunk
...
/ClassLib2 <-- svn external to svn://xyz/repo/ClassLib2/trunk
/doc
/lib
/src
/svn-externals
/ClassLibCommon <- svn external to svn://xyz/repo/ClassLibCommon/trunk
...
Библиотечные проекты используются другими «главными» проектами. Это ссылки на проекты. Две вещи: 1. Библиотеки часто меняются. 2. Я думал, что обычная мудрость не хранит двоичные файлы для вещей, для которых у вас есть исходный код. – User
Всё зависит. Мне не ссылаются на проект в более чем одном решении по поводу поездок. Я считаю, что общие библиотеки не являются частью основного проекта. Таким образом, точно так же, как включение DLL-файлов Crystal Report в svn, я также размещаю свои внутренние библиотеки DLL. Кроме того, ссылки DLL дают вам больше контроля над версией той библиотеки, которую вы используете с каждым проектом. Конечно, вы можете сделать выше, а не поместить двоичные файлы в svn. Поместите их на сетевой ресурс. – PilotBob
«Мне не ссылаться на проект в более чем одном решении, переопределяет это:« Я не уверен, что понимаю это.Чтобы уточнить, когда я использую термин «проект», я имею в виду это в общем смысле не в смысле визуальной студии. На мой взгляд, по определению, «проект» библиотеки классов (фактически это собственное решение) предназначен для использования в более чем одном решении. – User