gpt4 book ai didi

java - Ant 部署问题

转载 作者:行者123 更新时间:2023-11-30 01:39:28 24 4
gpt4 key购买 nike

我正在做一个 Spring 项目。我使用ant部署应用程序并使用STS(基于eclipse)IDE进行开发。我设置了CATALINA_HOME环境变量

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

当我从 IDE 运行部署 ant 任务时,它会部署到

下的文件夹
/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>

最佳答案

尝试将以下内容放在两个 <property> 之后行:

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

看看它输出什么。如果它实际上输出了正确的值,那么可能会发生奇怪的事情。如果它输出文字字符串

CATALINA_HOME=${env.CATALINA_HOME}

那么不知何故,你的 ant 脚本还没有获取环境变量。

请注意,当您为系统设置环境变量时,只有在设置该变量后启动的应用程序才会识别新变量。仅当正在启动的应用程序是从同一命令行 session 启动时,才会识别从命令行设置的变量。

关于java - Ant 部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1335473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com