2016-09-12 3 views
0

Eclipse Lunaで開発された簡単なWebアプリケーションがあります。アプリケーションのディレクトリ構造は次のようになります。EclipseからAntスクリプトを実行した後の出力ファイルがありません

プロジェクト名はSchoolScheduleです。

プロジェクト名には、Java Resources、build、WebContentフォルダ、およびbuild.xmlファイルがあります。

Javaリソースの下では、「src」フォルダであり、Javaコードのパッケージ名は「src」フォルダの下にあります。

WebContentには、META-INF、WEB-INF、および私のjspファイルがあります。 WEB-INFの下には、web.xmlファイルと "lib"ディレクトリがあります。

build.xmlはプロジェクトルートにあります。このWebアプリケーションは正常に実行され、予期した結果が得られます。

私はAntスクリプトを作成してコンパイルし、WARファイルをビルドし、WARをデプロイしました。しかし、基本的なタスクでさえ機能しません。私は右クリックしてbuild.xml - >として実行... - > Antのビルド。コンソールでは、すべてのエコーメッセージが表示され、エラーは表示されません。しかし、私は新しいディレクトリは作成されません(私はプロジェクトをリフレッシュします)。 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> 
+0

申し訳ありません - JavaリソースはEclipse固有です。プロジェクト名の下には、src、build、WebContentフォルダ、およびbuild.xmlファイルがあります。 – Johaness

答えて

0

は、あなたの周りのすべてのこのトップレベルの要素

<project> 
.... 
</project> 

のいくつかの種類を持っていることになっていませんか?

+0

はい、トップレベルの要素があります。 タグが表示されませんでした。とにかく、私は私の問題の1つを解決しました: – Johaness

+0

申し訳ありません、私は私の入力を待つことなく投稿されます。問題は、スクリプトを実行したときの現在の作業ディレクトリが、私が望むものではなかったことです。 私は変更しなければならなかった: <プロパティ名= "SRC" の場所= "SRC" /> <プロパティ名= "ウェブ" の場所= "$のWebContent" /> <プロパティ名= "ビルド"場所= "$ビルド" /> に、<プロパティ名= "SRC" の場所= "$ {BASEDIR}/srcに" /> <プロパティ名= "ウェブ" の場所= "$ { WebContent "/> <プロパティ名="ビルド "location =" $ {basedir}/build "/> – Johaness

関連する問題