Вопрос

Очень небольшая часть нашей кодовой базы — это устаревший код Java.Я пытаюсь добавить новую сборку, которая будет вызывать ant для сборки этого проекта.

Первая проблема заключается в том, что TFS не позволяет создавать сборку, которая не собирает решение .Net.Я обошёл эту проблему, скопировав предыдущий файл сборки и добавив задачу EndToEndIteration, которая является точкой входа для сборки.

Проблема в том, что ни одна из обычных переменных сборки не заполнена — $(BuildDirectory), $(SolutionRoot) — все пусто.Это в значительной степени означает, что я не могу вызвать задачу ant без жесткого кодирования путей (чего я определенно не могу сделать).

Есть идеи?

Это было полезно?

Решение 4

Спасибо за ответы на все вопросы.

В конце концов я прибегнул к включению пустого решения рядом с файлом сборки.Таким образом, все переменные заполняются, и я просто включил элемент, который сделал все, что я хотел.

Другие советы

Возможно, вы захотите взглянуть на Расширения сборки Teamprise который позволяет создавать задачи Ant или Maven из TFS.

  1. Если у вас его еще нет, создайте задачу, которая будет хранить и извлекать переменные среды, они вам определенно понадобятся для выполнения чего-либо, связанного с Java (я думаю, что такая возможность есть в Пакет расширений MSBuild)
  2. Создайте пользовательскую задачу для оболочки Ant или используйте задачу «Скрипт» из Задачи сообщества MSBuild коллекция
  3. Запустите его миллион раз и исправьте проблемы по ходу дела, обычно проще и быстрее сделать это из командной строки, поэтому подружитесь с msbuild.exe внутри терминала

Вы должны иметь возможность передавать любую информацию между переменными среды, делая возможным все, что вы хотите.Я не собираюсь рекомендовать вам пути жесткого кодирования, но вам нужно куда-то поместить конфигурацию, и все это зависит от того, что вы хотите изменить и как вы хотите, чтобы все было организовано.Если вам действительно нужно, вы можете поместить всю конфигурацию в базу данных и обработать ее с помощью одной из задач SQL в приведенных выше ссылках, но помните, что вы добавляете значительную сложность, которая может быть ненужной.

Спроси себя:

  • как часто может меняться это значение?
  • каков полный набор задач, которые необходимо будет выполнить, если он изменится?

Запишите где-нибудь ответы на этот вопрос и убедитесь, что все в команде их понимают.На мой взгляд, когда дело доходит до построения систем, «лучше меньше, да лучше».Найдите самый простой способ сделать это и делайте это до тех пор, пока это не станет неприемлемым, и только тогда усложняйте...TFS уже достаточно сложен.

Я думаю, что вы используете неправильный инструмент для этой работы - TFS никогда не будет хорошим решением для создания каких-либо приложений, кроме .NET.Я думаю, вам лучше использовать ant в автономном режиме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top