【问题标题】:Missing output files after running Ant script from Eclipse从 Eclipse 运行 Ant 脚本后缺少输出文件
【发布时间】:2016-09-12 18:20:47
【问题描述】:

我在 Eclipse Luna 中开发了一个简单的 Web 应用程序。应用的目录结构如下:

项目名称是 SchoolSchedule。

在项目名称下,有 Java Resources、build、WebContent 文件夹和 build.xml 文件。

在Java Resources下,是“src”文件夹,我的Java代码包名在“src”文件夹下。

在WebContent下,有META-INF、WEB-INF和我的jsp文件 在WEB-INF下,有web.xml文件和“lib”目录。

build.xml 位于项目根目录。此 Web 应用程序成功运行并产生预期结果。

我创建了一个 Ant 脚本来编译、构建 WAR 文件并部署 WAR。但是,即使是基本任务也不起作用。我右键单击 build.xml --> run as ... --> Ant build。在控制台中,我可以看到所有回显消息并且没有错误。但是,我没有看到创建任何新目录(我“刷新”了项目。)。没有从 Java 代码编译的“类”文件,更不用说构建和部署这些任务了。

有些事情我没有做对。请帮忙。这是我的 Ant 脚本:

<?xml version="1.0" encoding="UTF-8"?>

<project name="AntWarWebApp" basedir="." >

<echo>Define properties</echo> 
<property name="name" value="SchoolSchedule"/>
<property name="src" location="src"/>
<property name="web" location="WebContent"/>
<property name="build" location="build"/>
<property name="classDir" location="${build}/src"/>
<property name="distDir" location="${build}/dist"/>
<property name="warDir" location="${build}/war"/>

<property name="tomcat.webapps" value="C:\apache-tomcat-7.0.70\webapps" />

<echo>time stamp</echo> 
<tstamp prefix="build-info">
    <format property="current-date" pattern="d-MMMM-yyyy" locale="en" />
    <format property="current-time" pattern="hh:mm:ss a z" locale="en" />
    <format property="year-month-day" pattern="yyyy-MM-dd" locale="en" />
</tstamp>

<echo>clean up previous build directories</echo>    
<target name="clean" description="Delete old build directories">
    <delete dir="${distDir}"/>
    <delete dir="${warDir}"/>
    <delete dir="${classDir}"/>
</target>

<echo>create directories</echo>
<target name="init" depends="clean">
    <mkdir dir="${build}"/>
    <mkdir dir="${classDir}"/>
    <mkdir dir="${warDir}"/>
    <mkdir dir="${distDir}"/>
    <mkdir dir="${warDir}/WEB-INF"/>
    <mkdir dir="${warDir}/WEB-INF/classes"/>
</target>

<echo>start compiling</echo>        
<target name="compile" depends="clean, init" description="Compile main 
      source tree java files">
 <javac srcdir="${src}" destdir="${classDir}" />
    <classpath>
        <fileset dir="${basedir}/WebContent/WEB-INF/lib">
              <include name="*" />
        </fileset>
    </classpath>        
</target>

<echo>start building WAR file</echo>    
<target name="buildwar" depends="clean, init, compile">
    <war basedir="${wardir}" destfile="${distDir}/${name}.war"
     webxml="${wardir}/WEB-INF/web.xml">
        <webinf dir="${wardir}/WEB-INF/">
            <include name="**/*.jar" />
        </webinf>
        <manifest>
            <attribute name="Built-On" value="${build-info.current-date}" />
            <attribute name="Built-At" value="${build-info.current-time}" />
        </manifest>
    </war>
</target>
    <echo>end building WAR file</echo>   

<target name="deploy" depends="init, compile, buildwar" description="Deploy application">
   <delete dir="${tomcat.webapps}/*.war" />  
    <echo>copy WAR file to Tomcat deploy directory</echo>
    <copy file="${distdir}/*.war" todir="${tomcat.webapps}" />
</target>

</project>

【问题讨论】:

  • 很抱歉 - Java 资源是 Eclipse 特定的。项目名下有src、build、WebContent文件夹,以及build.xml文件。

标签: eclipse ant


【解决方案1】:

难道你不应该有某种顶级元素

<project>
 ....
</project>

围绕这一切?

【讨论】:

  • 是的,我有顶级元素。 标签未显示。无论如何,我已经解决了我的一个问题:
  • 抱歉,不等我打字就发布了。问题是我运行脚本时的当前工作目录不是我希望的那样。我不得不改变:
猜你喜欢
  • 1970-01-01
  • 2012-07-28
  • 2013-03-09
  • 2010-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-11
相关资源
最近更新 更多