在build.xml中包含其他项目java文件

时间:2014-09-08 10:09:52

标签: java ant build.xml

我在eclipse中有一个名为LTSWebEJB的项目。该项目引用另一个名为LTSCommonUtil的项目。我已经为LTSWebEJB编写了构建文件,

<?xml version="1.0"?>
<project name="ejbproj" default="deploy">

    <property name="build.dir" value="build" />
    <property name="jarName" value="LTSWebEJB.jar" />
    <property name="JBOSS" value="C:\Lts8083\jboss-as-web-7.0.0.Final" />
    <property name="JBOSSLIB" value="${JBOSS}\modules\javax" />

    <path id="project.class.path">
        <fileset dir="../LTSWebEAR/ear/lib" includes="*.jar"/>
        <fileset dir="${JBOSSLIB}/persistence/api/main" includes="*.jar"/>
    <fileset dir="${JBOSSLIB}/ejb/api/main" includes="*.jar"/>
    <fileset dir="${JBOSSLIB}/servlet/api/main" includes="*.jar"/>
    <fileset dir="../LTSCommonUtil/src" includes="src/com/eiw/server/"/>
    </path>

   <target name="clean" description="Cleans this project">
    <delete dir="${build.dir}" failonerror="false" />
    <delete dir="../LTSWebEAR/ear/${jarName}" failonerror="false" />
  </target>

  <target name="compile" depends="clean" description="Compile java source to bytecode">
    <mkdir dir="${build.dir}"/>
    <javac srcdir="src" includes="**/*.java"  encoding="utf-8"
        destdir="build" excludes="*.java"
        source="1.5" target="1.5" nowarn="true"
        debug="true" debuglevel="lines,vars,source">
         <classpath refid="project.class.path"/>
    </javac>
  </target>

  <target name="deploy" depends="compile" description="Deploy this jar to Ear location">
      <copy todir="${build.dir}" > <fileset dir="src" excludes="*.java"/> </copy>
      <jar destfile="../LTSWebEAR/ear/${jarName}" >
            <fileset
                dir="${build.dir}"
                excludes="**/Test.class" />
        </jar>
  </target>

</project>

但LTSWebEJB无法编译,因为它显示无法找到符号。它无法从LTSCommonUtil项目中获取类。但我把它包括在“”中。请帮忙。

1 个答案:

答案 0 :(得分:0)

我在猜测,但我认为问题在于你是如何宣布你通往其他项目的类文件的。需要指定与类包相对应的根目录。

我的盲目尝试解决问题,但必须提出第二个问题....为什么&#34; src&#34;目录?你有没有将其他项目编译成&#34; .class&#34;文件?

<path id="project.class.path">

  <fileset dir="../LTSWebEAR/ear/lib" includes="*.jar"/>
  <fileset dir="${JBOSSLIB}/persistence/api/main" includes="*.jar"/>
  <fileset dir="${JBOSSLIB}/ejb/api/main" includes="*.jar"/>
  <fileset dir="${JBOSSLIB}/servlet/api/main" includes="*.jar"/>

  <pathelement location="../LTSCommonUtil/src"/>

</path>