2012-08-25 3 views
18

を見つけることができません)のtaskdefクラスorg.apache.catalina.ant.InstallTask​​は私のbuild.xmlのために5回の警告を取得していますEclipseで

ANT_HOME: C:\apache-ant-1.8.4 
CATALINA_HOME: C:\apache-tomcat-7.0.29 
JAVA_HOME: C:\Program Files\Java\jdk1.6.0_34 
and have added %ANT_HOME%/bin to PATH 

編集:私はまた、Cにカタリナ-ant.jarをを追加しました:\ apacheの-ANT-1.8.4のlib \コードの

その他のパーツ:

<!-- We need the Catalina jars for Tomcat --> 
<!-- * for other app servers - check the docs --> 
<fileset dir="${appserver.lib}"> 
    <include name="catalina-ant.jar"/> 
</fileset> 
</path> 

<taskdef name="install" classname="org.apache.catalina.ant.InstallTask"> 
    <classpath refid="catalina-ant-classpath"/> 
</taskdef> 
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"> 
    <classpath refid="catalina-ant-classpath"/> 
</taskdef> 
<taskdef name="list" classname="org.apache.catalina.ant.ListTask"> 
    <classpath refid="catalina-ant-classpath"/> 
</taskdef> 
<taskdef name="start" classname="org.apache.catalina.ant.StartTask"> 
    <classpath refid="catalina-ant-classpath"/> 
</taskdef> 
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask"> 
    <classpath refid="catalina-ant-classpath"/> 
</taskdef> 

何が問題なのですか。

+0

あなたはより多くの情報を与えることができますか?たとえば、ビルドファイルのtaskdef部分です。 – coolcfan

+0

警告の原因となるコード行に追加されました – Arvin

答えて

20

CATALINA_HOMEに言及するだけでは機能しません。 Antのクラスパスにcatalina-antのjarファイルを置く必要があります。 tomcat 7では、この目的のために4つのjarファイルがありましたが、これまでのバージョンではjarファイルは1つしかありませんでした。これに従ってくださいlink

リンクからの引用として、

Tomcatマネージャが カタリナ-ANTで使用するように構成されていることを確認し、で開始します。ユーザーTOMCAT_HOME/conf/tomcat-users.xmlのいずれかのロール にmanager-scriptが含まれていることを確認してください。 例えば:Tomcatの6

<tomcat-users> 
    <user name="admin" password="s3cr£t" roles="manager-gui,manager-script"/> 
</tomcat-users> 

カタリナ-ANTは、単一のJARファイル内に封入しました。 Catalina-Ant for Tomcat 7には4つのJARファイルが必要です。一つTOMCAT_HOME/bin から:

TOMCAT_HOME/libから
tomcat-juli.jar 

と3:

catalina-ant.jar 
tomcat-coyote.jar 
tomcat-util.jar 

ANTにJARファイルを利用可能にすることの少なくとも3つの方法があります。

  • JARをANT_HOME/libフォルダにコピーします。それで、Antはただ見つけます。
  • JARをソース管理システムにチェックインするプロジェクト内のフォルダにコピーします。 Antはそれらを見つけるために、パスIDが必要です。catalina-ant-dirあなたがすべてのマシンあなたにAntのインストールを変更する を必要としないこの方法で、JARファイルとディレクトリがある
  • <path id="catalina-ant-classpath"> 
        <fileset dir="${catalina-ant-dir}"> 
         <include name="catalina-ant.jar"/> 
         <include name="tomcat-coyote.jar"/> 
         <include name="tomcat-util.jar"/> 
         <include name="tomcat-juli.jar"/> 
        </fileset> 
    </path> 
    

    ビルド Tomcat 7インストールから直接JARにアクセスしてください。Antは、その後 はそれらを見つけるためにパスIDが必要です。

    <path id="catalina-ant-classpath"> 
        <fileset dir="${appserver.lib}"> 
          <include name="catalina-ant.jar"/> 
          <include name="tomcat-coyote.jar"/> 
          <include name="tomcat-util.jar"/> 
         </fileset> 
        <fileset dir="${appserver.home}/bin"> 
           <include name="tomcat-juli.jar"/> 
        </fileset> 
    </path> 
    
    appserver.libにTomcat 7のlibディレクトリへのパスです

    appserver.home Tomcatのトップレベルインストールしたディレクトリへのパスです。 この方法でTomcat 7はあなたが構築するすべてのボックスに必要です。

    私の個人的な好みは上記の2つです。

    これで、あなたのAntスクリプトでカタリナ・アリJARが表示され、 には利用可能なタスクが表示されます。これらは、Antに利用可能なタスクのうちのほとんどではありませんが、 タスクです。

    <taskdef name="catalina-deploy" classname="org.apache.catalina.ant.DeployTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-list" classname="org.apache.catalina.ant.ListTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-reload" classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-findleaks" classname="org.apache.catalina.ant.FindLeaksTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-resources" classname="org.apache.catalina.ant.ResourcesTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-start" classname="org.apache.catalina.ant.StartTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-stop" classname="org.apache.catalina.ant.StopTask" classpathref="catalina-ant-classpath"/> 
    <taskdef name="catalina-undeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="catalina-ant-classpath"/> 
    

    最後に、あなたが実際に作業を行う一連のタスクを必要としています。けれども、あなたが上記を参照できるように、私は以下のものを使用する傾向があるいくつかのタスクがあります。

    <target name = "stop-webapp"> 
         <catalina-stop url="${tomcat.manager.url}" 
             username="${tomcat.username}" 
             password="${tomcat.password}" 
             path="/${webapp.name}" 
             failonerror="false"/> 
    </target> 
    
    <target name = "start-webapp"> 
        <catalina-start url="${tomcat.manager.url}" 
             username="${tomcat.username}" 
             password="${tomcat.password}" 
             path="/${webapp.name}"/> 
    </target> 
    
    <target name = "undeploy-webapp"> 
        <catalina-undeploy url="${tomcat.manager.url}" 
              username="${tomcat.username}" 
              password="${tomcat.password}" 
              path="/${webapp.name}" 
              failonerror="false"/> 
    </target> 
    
    <target name = "deploy-webapp"> 
        <catalina-deploy url="${tomcat.manager.url}" 
             username="${tomcat.username}" 
             password="${tomcat.password}" 
             path="/${webapp.name}" 
             war="file:${war.file}"/> 
    </target> 
    

    tomcat.manager.urlはどこTomcatマネージャ生活URLです。これは です。Tomcat 6からTomcat 7への変更のもう1つです。通常これは :http://:8080/manager/textとなります。

    Tomcat.usernameおよびTomcat.passwordは、Tomcatマネージャのユーザー名とパスワード です。

    webapp.nameは、 配備のTomcatアプリケーションの名前です。

    war.fileは、WAR ファイルを展開するTomcatアプリケーションのパスです。

    +0

    私はすでにcatalina-ant.jarをC:\ apache-ant-1.8.4 \ libに追加しました – Arvin

    +0

    この情報は質問には言及されていませんでした。このリンクに記載されているように4つのjarファイルが含まれています。 – vikas

    +0

    ありがとう、私は警告の原因となるコード行を追加しました。私はまた、ANT_HOME/libに他の3つのファイルを追加しようとしましたが、それでも動作しません。 – Arvin

    4

    これ以上の詳細は

    <fileset dir="${appserver.home}/common/lib"> 
    <include name="servlet*.jar"/> 
    </fileset> 
    

    は、あなたの質問には存在しないので、私は$ {アプリケーションサーバーを変更、あなたのbuild.xmlの中に上記の設定してくださいがあるかもしれません信じて、この変更を行う必要があります推測.home}をtomcatのインストールディレクトリに移動します。

    <fileset dir="C:/Program Files/Apache Software Foundation/Tomcat 5.5/common/lib"> 
    <include name="servlet*.jar"/> 
    </fileset> 
    
    +0

    私の投稿に詳細を追加しました。私はあなたが言ったことを試しましたが、残念ながら警告を取り除いていません – Arvin

    +0

    "appserver.home"をbuild.propertiesファイルのC:/ Program Files/Apache Software Foundation/Tomcat 5.5/common/libに設定しようとしましたか? – likeToCode

    +0

    build.propertiesファイルで、以下を複製してみてください。user.home = C:/ Program Files/Apache Software Foundation appserver.home = $ {user.home}/Tomcat 5.5 deploy.path = $ {appserver.home }/webapps – likeToCode

    64

    では、InstallTask​​はDeployTaskに置き換えられました。

    変更あなたがウィンドウに 移動し、手順の下に以下のことで、あなたのANT_HOMEの場所を変更する必要があり、その後eclipesを使用している場合

    <taskdef name="install" classname="org.apache.catalina.ant.DeployTask"> 
        <classpath refid="catalina-ant-classpath"/> 
    </taskdef> 
    
    +1

    ありがとうTomcat 7を使用していて、DeployTaskに変更して問題を解決しました! – Bartzilla

    +0

    これは良いですよ。 –

    +1

    これは正しい答えです。 –

    1

    古い

    <taskdef name="install" classname="org.apache.catalina.ant.InstallTask"> 
        <classpath refid="catalina-ant-classpath"/> 
    </taskdef> 
    

    のようなあなたの宣言> prefrances> Ant>ランタイム> classpath> AntHome anthomeボタンをクリックし、あなたのディレクトリパスを指定してください。

    およびuはanthome/libフォルダ内

    おかげで、Tomcatの7では シャラド

    4

    をカタリナ-ant.jarをコピーする必要がウル問題をSOLVし、org.apache.catalina.antはのセットが含まれています実行中のTomcatインスタンスからWebアプリケーションを配備、配備解除、一覧表示、再ロード、開始、停止するためにManagerアプリケーションと対話するために使用できるタスク。 InstallTask​​をDeployTaskに置き換えると、ビルドの問題が解決されます。

    <taskdef name="install" classname="org.apache.catalina.ant.DeployTask"> 
         <classpath refid="catalina-ant-classpath"/> 
        </taskdef> 
        <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"> 
         <classpath refid="catalina-ant-classpath"/>`enter code here` 
        </taskdef> 
        <taskdef name="list" classname="org.apache.catalina.ant.ListTask"> 
         <classpath refid="catalina-ant-classpath"/> 
        </taskdef> 
        <taskdef name="start" classname="org.apache.catalina.ant.StartTask"> 
         <classpath refid="catalina-ant-classpath"/> 
        </taskdef> 
        <taskdef name="stop" classname="org.apache.catalina.ant.StopTask"> 
         <classpath refid="catalina-ant-classpath"/> 
        </taskdef> 
    
    1

    次を試してみてください、それはあなたの問題を解決します:

    1) Click Eclipse menu Window > Preferences 
    2) Click Ant > Runtime 
    3) Under Classpath tab, select Ant Home Entries and click button Add External JARs 
    4) Browse and open $ECLIPSE_HOME/plugins/org.apache.ant_myscrum/lib/catalina-ant.jar 
    5) Click Apply and OK button 
    

    Follow the instruction no.3

    Follow the instruction no.4

    関連する問題