2010-01-14 4 views
6

Мы используем MSBuild для запуска нашей сборки, которая компилирует и выводит ряд .NET-проектов/сборок. Теперь мы сталкиваемся с необходимостью также включать в себя java-версию наших сборок и не уверены, как нам следует интегрировать построение этого источника java в MSBuild.Создание java от MSBuild

Всегда есть возможность выложить командную строку и выполнить ее компиляцию и jar'ing вручную, но есть ли какие-либо другие и более элегантные способы, связанные с потреблением Java-здания в MSBuild?

ответ

2

Exec task - идеальная вещь. Легко, работает. Не уверен, что это то, что вы подразумеваете под «Shell out».

+0

«Shell out» был на самом деле вызовом задачи Exec ... только для этого потребовалось бы много ручной набирать текст и поддерживать правильность ссылок на файлы java. Был поиск способа вывести человеческий фактор ... –

+1

Вместо прямого вызова javac и jar вы можете вызвать ant и speficy часть Java в файле build.xml, который вы храните как часть вашей базы кода. – rsp

0

Создание собственной задачи MSBuild для компиляции Java возможно (я сделал один скомпилировать VB6 код с MSBuild), но если это хорошая идея, это другой вопрос .. (YAGNI и все такое)

Если обход в командной строке действительно работает, это может быть просто дело.

Моя кишка говорит, что выкладывается в процесс Ant, поскольку Ant знает немного больше о Java.

0

Я бы написал пользовательскую задачу, чтобы позвонить 'Ant' из MSBuild.

https://github.com/sumi2/AntTask

Вы можете позвонить Ant скрипт как следующий

<PropertyGroup> 
    <JavaHome>$(MSBuildProjectDirectory)\build\tools\jdk1.6.0_25</JavaHome> 
    <AntHome>$(MSBuildProjectDirectory)\build\tools\apache-ant-1.8.2</AntHome> 
</PropertyGroup> 

<!-- Call Ant with 'jar' target. --> 
<Ant 
    BuildFile="$(MSBuildProjectDirectory)\YourJavaProject\build.xml" 
    Target="jar" 
    AntHome="$(AntHome)" 
    JavaHome="$(JavaHome)" 
/> 
Смежные вопросы