проблема развертывания муравья - PullRequest
1 голос
/ 26 августа 2009

Я работаю над весенним проектом. Я использую ant для развертывания приложения и разработки для среды STS (на основе Eclipse). Я установил переменную среды CATALINA_HOME

 echo $CATALINA_HOME
/home/username/springsource/apache-tomcat

Когда я запускаю задачу развертывания ant из IDE, она развертывается в папку под

/home/username/workspace/myproject/${env.CATALINA_HOME}/webapp

но не

/home/username/springsource/apache-tomcat/webapp  

Знаете ли вы какое-нибудь исправление?

Мой файл build.properties

src.dir=src
web.dir=web
build.dir=${web.dir}/WEB-INF/classes
name=myproject
appserver.home=${env.CATALINA_HOME}
deploy.path=${appserver.home}/webapps
appserver.lib=${appserver.home}/lib

и файл build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="kervan" basedir="." default="usage">
<property environment="env"/>
<property file="build.properties"/>
<path id="cp">
<fileset dir="${web.dir}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${appserver.lib}">
<include name="servlet-api.jar"/>
</fileset>
<pathelement path="${build.dir}"/>
</path>
<target name="usage">
<echo message=""/>
<echo message="${name} build file"/>
<echo message="-----------------------------------"/>
<echo message=""/>
<echo message="Available targets are:"/>
<echo message=""/>
<echo message="build --> Build the application"/>
<echo message="deploy --> Deploy application as a WAR file"/>
<echo message=""/>
</target>
<target name="build"  description="Compile main source tree java files">
<mkdir dir="${build.dir}"/>
<javac destdir="${build.dir}" source="1.6" target="1.6"
debug="true" deprecation="false" optimize="false"
failonerror="true">
<src path="${src.dir}"/>
<classpath refid="cp"/>
</javac>
</target>
<target name="deploy" depends="build" description="Deploy application as a WAR file">
<war destfile="${name}.war"
webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${web.dir}">
<include name="**/*.*"/>
</fileset>
</war>
<copy todir="${deploy.path}" overwrite="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</copy>
</target>
</project>

Ответы [ 7 ]

3 голосов
/ 26 августа 2009

Попробуйте поставить после двух <property> строк следующее:

<echo message="CATALINA_HOME=${env.CATALINA_HOME}" />

и посмотрите, что он выводит. Если он действительно выдает правильное значение, то может происходить что-то странное. Если он выводит буквальную строку

CATALINA_HOME=${env.CATALINA_HOME}

тогда ваш сценарий ant не подобрал переменную окружения.

Обратите внимание, что когда вы устанавливаете переменную среды для вашей системы, только приложения, запущенные ПОСЛЕ установки переменной, распознают новую переменную. И переменные, установленные из командной строки, будут распознаваться только в том случае, если запускаемое приложение запускается из того же сеанса командной строки.

0 голосов
/ 08 июля 2014

Пожалуйста, убедитесь, что вы завершили свой путь с /, и это решит вашу проблему.

пример: export JAVA_HOME = / opt / java / вместо: экспорт JAVA_HOME = / opt / java

0 голосов
/ 08 января 2013

Недавно у меня возникла похожая проблема.

Проблема была в переменной среды CATALINA_HOME: мне нужно было закрыть путь обратной косой чертой ("/"):

$ export CATALINA_HOME = / home / имя пользователя / источник ресурсов / apache-tomcat /

После исправления я смог развернуть приложение с помощью ant.

0 голосов
/ 20 апреля 2011

, если вы установили переменную среды в глобальном

/ и т.д. / окружающая среда * * 1004

вот в чем проблема в Ubuntu. Ant не выбирает переменную окружения отсюда. Но echo $ CATALINA_HOME отлично работает в терминале. Я сталкиваюсь с той же проблемой.

  • установка вашей среды в .bashrc может решить вашу проблему.
0 голосов
/ 26 августа 2009

Если вы работаете из Eclipse или Eclipse-подобной среды, Eclipse может показаться странным в том смысле, что в зависимости от того, как вы его запускаете, сценарии запуска не сделают вашу среду изначально доступной для вашего in-IDE Ant процесс сборки.

В моей сборке Ant на основе Eclipse мне пришлось вручную настраивать среду. Поэтому я щелкаю правой кнопкой мыши по своему проекту и захожу в «Свойства». Затем я нажимаю на раздел «Строители». Я выбираю «Ant Builder» и нажимаю «Edit ...». В этом разделе есть вкладка «Среда», где вы можете указать переменные среды и их соответствующие значения.

Даже если вы используете Eclipse не так, как я, изучите свойства сборки, и вы сможете найти способ указать переменные среды и сделать их доступными для процесса сборки.

0 голосов
/ 26 августа 2009

При запуске из затмения я не верю, что среда передается муравью. Вам нужно будет указать каждую переменную среды (и значения), которую вы хотите передать ant, в конфигурации файла сборки в eclipse.

0 голосов
/ 26 августа 2009

Установлено ли CATALINA_HOME в вашей среде?

например. Windows

echo %CATALINA_HOME%

Linux

echo $CATALINA_HOME

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

На форуме здесь обсуждается та же проблема:

http://www.nabble.com/%3Cproperty-environment%3D%E2%80%9Denv%E2%80%9D%3E-doesn%27t-pick-up-an-environment-variable-td21481164.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...