Я нахожусь в процессе изменения сценария Ant (который в настоящее время используется из MyEclipse) для работы из командной строки.Я делаю это, чтобы любой мог проверить проект и собрать его без MyEclipse.Проблема, с которой я сталкиваюсь, заключается в том, что MyEclipse включает закулисные зависимости.Это делается путем просмотра конфигурации Ant рабочей области и компиляции пути к классам на основе выбранных библиотек в диалоговом окне настроек.Короче говоря, мне нужно взять эти зависимости и сделать скрипт достаточно умным, чтобы включать их самостоятельно, без помощи MyEclipse.
Задачи, от которых у меня болит голова, - это задачи sshexec и scp.Это необязательные задачи ant, для работы которых требуется версия jsch.Я удалил jsch из пути к классам Ant в MyEclipse и добавил его в папку lib в самом проекте (lib / dev).MyEclipse немедленно пожаловался, что класс SSHExec не смог найти зависимый класс com.jcraft.jsch.UserInfo
, который является частью jsch-0.1.44.jar.
Я не вижу способа установить путь к классу для Ant изнутрискрипт сборки.У меня есть следующий код, который добавляет элемент path
в сценарий, но я не думаю, что Ant использует его, если явно не связан с задачей или другим элементом.
<path id="web-jars">
<fileset dir="${web-lib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${app-lib}"> <!-- this is where jsch resides -->
<include name="**/*.jar" />
</fileset>
</path>
Кажется, что мне нужночтобы использовать taskdef
для определения задач sshexec и scp:
<taskdef name="sshexec" classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"
classpathref="web-jars"/>
MyEclipse жалуется на это, "taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec cannot be found: com/jcraft/jsch/UserInfo"
Это явно в classpathref, web-jars.И я не могу ничего запустить в скрипте из-за этой некорректной или неправильно сконфигурированной задачи.