2009-08-12 15 views
9

私はantを使用してearファイルを作成するためにeclipseを使用しています。私はoc4jを使用しており、orion-application.xmlがビルドに含まれていることを確認したい。私が現在使っているが動作しないのは次のとおりです。特定のファイルを含むAntビルドを使用してEARファイルを作成するにはどうすればよいですか?

 <target name="ear" depends=""> 
     <echo>Building the ear file</echo> 
     <copy todir="${build.dir}/META-INF"> 
      <fileset dir="${conf.dir}" includes="orion-application.xml"/> 
     </copy> 
     <ear destfile="${dist.dir}/${ant.project.name}.ear" 
       appxml="${conf.dir}/application.xml"> 
      <fileset dir="${dist.dir}" includes="*.jar,*.war"/> 
     </ear> 
    </target>

これを耳に付け加える正しい方法は何ですか? META-INFフォルダに行くべき

答えて

20

Ant EAR task

すべては、ネストされた<metainf>ファイルセットを介して指定する必要があります。

<ear destfile="${dist.dir}/${ant.project.name}.ear" 
    appxml="${conf.dir}/application.xml"> 
    <metainf dir="${build.dir/META-INF}"/> 
    <fileset dir="${dist.dir}" includes="*.jar,*.war"/> 
</ear> 
+1

は素晴らしい仕事を!私はドキュメントを理解するのが少し難しかった。 – user149100

+2

Ant EARタスク=> http://ant.apache.org/manual/Tasks/ear.html –

+2

うまく動作しますが、耳障りな警告が表示されます。「選択したearファイルにはMETA-INF/application.xmlが含まれています無視されます(earタスクにappxml属性を使用してください) " – stian

5

まず、これを使用して戦争を構築します。同じAntタスクでEARより

http://ant.apache.org/manual/Tasks/war.html

。 Javaプロジェクトのディレクトリ構造でこれを入れて

http://ant.apache.org/manual/Tasks/ear.html

<?xml version="1.0" encoding="UTF-8"?> 
<project basedir="." default="test_ear" name="myProject"> 
    <property name="build.dir" value="WebContent"/> 
<target name="test_ear"> 
    <war destfile="C:/projects/test1.war" needxmlfile='false'> 
     <fileset dir="${build.dir}" excludes="*build*.xml"/> 
    </war> 
    <ear destfile="C:/projects/test1EAR.ear" appxml="WebContent/META-INF/application.xml"> 
     <fileset dir="C:/projects/" includes="*.jar,*.war"/> 
    </ear> 
</target> 
</project> 
6

は、このコードを試してみてください。

<ear destfile="deploy/iapp.ear" 
     appxml="workspace/appEAR/EarContent/META-INF/application.xml"> 
     <fileset file="workspace/appEJB/appEJB.jar" /> 
     <fileset file="workspace/appWAR/appWAR.war" /> 
     <zipfileset file="workspace/appLIB/appLIB.jar" 
        prefix="APP-INF/lib" /> 
     <zipfileset dir="lib/fop" includes="*.jar" prefix="APP-INF/lib" /> 
     <zipfileset dir="lib/poi" includes="*.jar" prefix="APP-INF/lib" /> 
     <zipfileset dir="lib/gxt" includes="*.jar" prefix="APP-INF/lib" />   
     <metainf dir="workspace/appEAR/EarContent/META-INF"> 
      <exclude name="**/application.xml" /> 
      <exclude name="**/MANIFEST.MF" /> 
     </metainf> 
     <manifest> 
      <attribute name="Weblogic-Application-Version" 
         value="${deploy.revision}" /> 
     </manifest> 
    </ear> 
+0

これはupvotesが十分ではありませんが、これはwar、jar、appxml、manifest、app-inf/lib、meta-infのすべての亜種を網羅しているので、これは '受け入れられた' –

関連する問題