уверен, что это возможно! Вы можете просто заставить Jetty выставлять как фильтр SparkJava, так и сервлет Vaadin 10+. Я создал пример приложения, основанного на работе Алехандро: https://github.com/mvysny/embedded-jetty-demo
MSBuild имеет ряд хороших функций. Мне нравятся
рекурсивные спецификации файлов
<Files Include="$(src)\**\*.cs" Exclude="$(src)\**\*test.cs" />
Пакетирование и метаданные элементов
<ItemGroup>
<F Include="SampleApplication.t">
<Version>1</Version>
</F>
<F Include="SampleApplication2.t">
<Version>1</Version>
</F>
<F Include="SampleApplication3.t">
<Version>2</Version>
</F>
</ItemGroup>
<Target Name="Build">
<Touch Files="%(F.FullPath)" AlwaysCreate="True"
Condition=" '%(F.Version)' > '1' ">
<Output TaskParameter="TouchedFiles" ItemName="CreatedFiles"/>
</Touch>
<Message Text="Created files = @(CreatedFiles)"/>
<Message Text="%(F.Identity) %(F.Version)"/>
</Target>
Анализ зависимостей целевого уровня
<Target Name="Build"
Inputs="@(MyItems)"
Outputs="@(MyItems -> '$(MyItems)\%(filename).dll'">
На самом деле это не скрытая функция, но я думаю, что пакетная обработка очень эффективна, если ее понять.
Для получения дополнительной информации вы можете прочитать мои записи в блоге по адресу:
Сайед Ибрагим Хашими
Моя книга: Внутри Microsoft Build Engine: использование MSBuild и Team Foundation Build
Используйте параметр командной строки / M , чтобы разрешить использование всех доступных ядер ЦП.
Я нашел MSBuild Пакет расширения невероятно полезно. Документация очень хорошо организована и позволяет легко найти необходимую информацию.
У них есть раздел по настройке intellisense для файлов сборки, который можно найти здесь
У Attrice есть невероятный инструмент, который я часто использую, если Мне нужно поработать над сценариями сборки. Что делает его полезным, так это то, что у него есть отладчик, который покажет вам зависимые задачи, когда он выполняет ваш сценарий сборки, с переменными auto и watch во время выполнения сценария сборки. Microsoft Build Sidekick v2.3
Установка SVN в тихий режим, как мне кажется, значительно увеличила скорость процесса сборки. Добавление следующего в ваш MSBuild.Community.Tasks.Subversion.SvnExport запустит сборку без регистрации каждого файла, который он получает из SVN
Arguments = "- force -q"
Вы можете ссылаться на один файл msbuild из другого. Все наши цели, например, для запуска NCover, SourceMonitor, Duplo и т. Д., Находятся в общем файле целей. Для каждого проекта мы создаем файл msbuild с разделами PropertyGroup и ItemGroup с последующим включением в общие цели. Это гарантирует, что все наши сборки будут выполнять один и тот же набор аналитических задач, и сэкономит нам время на написание сценариев.