Iam尝试运行我的Ant构建并创建构建成功。我还看到正在创建的目标文件夹中的已编译类。但是当我接受war文件并在jboss服务器中部署时,它给了我异常,说我的类没有classnotfound异常。
Build.xml看起来像:
<property name="javabase" value="${gi.basedir}/search/src"/>
<property name="targetdir" value="${gi.basedir}/search/targets"/>
<property name="wardir" value="${targetdir}/war"/>
<property name="externaljars" value="WebContent/WEB-INF/lib"/>
<property name="java-compiled" value="${targetdir}/java-compiled"/>
<property name="srchwardir" value="${wardir}/warpath"/>
<target name="init" depends="clean">
<mkdir dir="${srchwardir}"/>
<mkdir dir="${targetdir}"/>
<mkdir dir="${wardir}"/>
</target>
<target name="compile" depends="init" description="compile the source " >
<mkdir dir="${java-compiled}"/>
<!-- Compile the java code from ${src} into ${java-compiled} -->
<javac srcdir="${javabase}" destdir="${java-compiled}">
<include name="agsrchpackage.*.java"/>
</javac>
</target>
<target name="Main" depends="compile">
<description>Main target</description>
</target>
<path id="java.classpath">
<fileset dir="${externaljars}">
<include name="*.jar" />
</fileset>
</path>
<war destfile="${srchwardir}/agsrchpackage.war" webxml="WebContent/WEBINF/web.xml">
</war>
</project>
答案 0 :(得分:2)
构建脚本中存在一些问题 - 这是我使用您的文件夹名称运行的问题。您没有干净的目标,并且webxml参数错误 - 该文件夹的“WEB-INF”应该不仅仅是WEBINF。
这将构成一场战争。看起来你还没有把你的班级列入正在建设的战争中。我在war标签中添加了标签。
<project name="test" basedir="." default="usage">
<property name="gi.basedir" value="."/>
<property name="javabase" value="${gi.basedir}/search/src"/>
<property name="targetdir" value="${gi.basedir}/search/targets"/>
<property name="wardir" value="${targetdir}/war"/>
<property name="externaljars" value="WebContent/WEB-INF/lib"/>
<property name="java-compiled" value="${targetdir}/java-compiled"/>
<property name="srchwardir" value="${wardir}/warpath"/>
<path id="java.classpath">
<fileset dir="${externaljars}">
<include name="*.jar" />
</fileset>
</path>
<target name="clean">
<delete dir="${srchwardir}"/>
<delete dir="${targetdir}"/>
<delete dir="${wardir}"/>
</target>
<target name="init" depends="clean">
<mkdir dir="${srchwardir}"/>
<mkdir dir="${targetdir}"/>
<mkdir dir="${wardir}"/>
</target>
<target name="compile" depends="init" description="compile the source " >
<mkdir dir="${java-compiled}"/>
<javac srcdir="${javabase}" destdir="${java-compiled}">
<classpath refid="java.classpath"/>
</javac>
</target>
<target name="war" depends="compile">
<war destfile="${srchwardir}/agsrchpackage.war" webxml="WebContent/WEB-INF/web.xml">
<classes dir="${java-compiled}"/>
<lib dir="${externaljars}">
<include name="**/*.jar"/>
</lib>
<fileset dir="${javabase}">
<include name="**/log4j.properties"/>
</fileset>
</war>
</target>
</project>
你可以通过像这样运行jar程序来查看战争的内容,并列出战争的内容。
jar -tf search/targets/war/warpath/arsrchpackage.war