Создание Java-проекта с помощью TFS
Вопрос
Очень небольшая часть нашей кодовой базы — это устаревший код Java.Я пытаюсь добавить новую сборку, которая будет вызывать ant для сборки этого проекта.
Первая проблема заключается в том, что TFS не позволяет создавать сборку, которая не собирает решение .Net.Я обошёл эту проблему, скопировав предыдущий файл сборки и добавив задачу EndToEndIteration, которая является точкой входа для сборки.
Проблема в том, что ни одна из обычных переменных сборки не заполнена — $(BuildDirectory), $(SolutionRoot) — все пусто.Это в значительной степени означает, что я не могу вызвать задачу ant без жесткого кодирования путей (чего я определенно не могу сделать).
Есть идеи?
Решение 4
Спасибо за ответы на все вопросы.
В конце концов я прибегнул к включению пустого решения рядом с файлом сборки.Таким образом, все переменные заполняются, и я просто включил элемент, который сделал все, что я хотел.
Другие советы
Возможно, вы захотите взглянуть на Расширения сборки Teamprise который позволяет создавать задачи Ant или Maven из TFS.
- Если у вас его еще нет, создайте задачу, которая будет хранить и извлекать переменные среды, они вам определенно понадобятся для выполнения чего-либо, связанного с Java (я думаю, что такая возможность есть в Пакет расширений MSBuild)
- Создайте пользовательскую задачу для оболочки Ant или используйте задачу «Скрипт» из Задачи сообщества MSBuild коллекция
- Запустите его миллион раз и исправьте проблемы по ходу дела, обычно проще и быстрее сделать это из командной строки, поэтому подружитесь с msbuild.exe внутри терминала
Вы должны иметь возможность передавать любую информацию между переменными среды, делая возможным все, что вы хотите.Я не собираюсь рекомендовать вам пути жесткого кодирования, но вам нужно куда-то поместить конфигурацию, и все это зависит от того, что вы хотите изменить и как вы хотите, чтобы все было организовано.Если вам действительно нужно, вы можете поместить всю конфигурацию в базу данных и обработать ее с помощью одной из задач SQL в приведенных выше ссылках, но помните, что вы добавляете значительную сложность, которая может быть ненужной.
Спроси себя:
- как часто может меняться это значение?
- каков полный набор задач, которые необходимо будет выполнить, если он изменится?
Запишите где-нибудь ответы на этот вопрос и убедитесь, что все в команде их понимают.На мой взгляд, когда дело доходит до построения систем, «лучше меньше, да лучше».Найдите самый простой способ сделать это и делайте это до тех пор, пока это не станет неприемлемым, и только тогда усложняйте...TFS уже достаточно сложен.
Я думаю, что вы используете неправильный инструмент для этой работы - TFS никогда не будет хорошим решением для создания каких-либо приложений, кроме .NET.Я думаю, вам лучше использовать ant в автономном режиме.