0
개미와 그 컴파일 벌금을 사용하여 귀를 만들었습니다. 그러나 배포 할 때 weblogic 서버 로그에 noclassdeffound 오류가 발생합니다. 그래서 서버의 시작 스크립트에 라이브러리 (jar)를 추가했습니다. 즉 서버 java 클래스 경로가 제대로 작동합니다.manifest.mf 클래스 경로를 사용하는 런타임 클래스 경로
개미 빌드를 사용하여이 런타임 클래스 경로 문제를 해결하는 방법을 알려주십시오. manifest.mf 파일에 classpath를 추가하는 것이 도움이된다고 가정합니다. 지금까지 내 build.xml 파일은 다음과 같습니다
이
<?xml version="1.0"?>
<project name="xxx APP Check" default="all" basedir=".">
<target name="init">
<property name="software.version" value="1.0"/>
<property name="user.name" value="usrnme"/>
<property name="dirs.base" value="${basedir}"/>
<property name="classdir" value="${dirs.base}/build/src"/>
<property name="src" value="${dirs.base}/src"/>
<property name="mf" value="${dirs.base}/src/META-INF"/>
<property name="jar" value="${dirs.base}/build/jar"/>
<property name="web" value="${dirs.base}/web"/>
<property name="deploymentdescription" value="${dirs.base}/build/deploymentdescriptors"/>
<property name="warFile" value="xxxappchk.war"/>
<property name="earFile" value="xxxxappchk.ear"/>
<property name="earDir" value="${dirs.base}/build/ear"/>
<property name="warDir" value="${dirs.base}/build/war"/>
<property name="srcDir" value="${dirs.base}/build/src"/>
<!-- Create Web-inf and classes directories -->
<mkdir dir="${warDir}/WEB-INF"/>
<mkdir dir="${warDir}/WEB-INF/classes"/>
<mkdir dir="${warDir}/WEB-INF"/>
<mkdir dir="${warDir}/WEB-INF/lib"/>
<mkdir dir="${warDir}/WEB-INF/classes"/>
<!-- Create Meta-inf and classes directories -->
<mkdir dir="${warDir}/META-INF"/>
<mkdir dir="${earDir}/META-INF"/>
</target>
<!-- Main target -->
<target name="all" depends="init,build,buildWar,buildEar,clean"/>
<!-- Compile Java Files and store in /build/src directory -->
<target name="build" >
<path id="3rdparty.jar.path">
<fileset dir="${jar}">
<include name="*.jar" />
</fileset>
</path>
<javac srcdir="${src}" includeantruntime="false" destdir="${classdir}" debug="true" includes="**/*.java" >
<classpath>
<path refid="3rdparty.jar.path"/>
</classpath>
</javac>
</target>
<!-- Create the War File -->
<target name="buildWar" depends="init">
<copy todir="${warDir}/WEB-INF/classes">
<fileset dir="${classdir}" includes="**/*.class" />
</copy>
<jar destfile="${warDir}/WEB-INF/lib/xxxx-appcheck.jar"
basedir="${warDir}/WEB-INF/classes"
/>
<echo message="Hyperion appcheck jar created."/>
<copy todir="${warDir}/WEB-INF/classes/com/ca/xxxx_appcheck">
<fileset dir="${src}" includes="**/*.java" />
</copy>
<copy todir="${warDir}/WEB-INF">
<fileset dir="${deploymentdescription}" includes="web.xml" />
</copy>
<copy todir="${warDir}/WEB-INF/lib">
<fileset dir="${jar}" includes="*.jar" />
</copy>
<copy todir="${warDir}">
<fileset dir="${web}" includes="**/*.*" />
</copy>
<!-- Create war file and place in ear directory -->
<jar jarfile="${earDir}/${warFile}" basedir="${warDir}" />
</target>
<!-- Create the War File -->
<target name="buildEar" depends="init">
<copy todir="${earDir}/META-INF">
<fileset dir="${deploymentdescription}" includes="application.xml" />
</copy>
<!-- Create ear file and place in ear directory -->
<jar jarfile="${dirs.base}/${earFile}" basedir="${earDir}" />
</target>
<target name="clean" description="Delete all generated files">
<delete dir="${srcDir}" failonerror="false"/>
<delete dir="${earDir}" failonerror="false"/>
<delete dir="${warDir}" failonerror="false"/>
<echo message="Deleted the temp directories src, war, ear"/>
<mkdir dir="${earDir}"/>
<mkdir dir="${warDir}"/>
<mkdir dir="${srcDir}"/>
<echo message="created the temp directories src, war, ear"/>
</target>
</project>
누락 된 jar 파일을 WAR/EAR 파일의 "WEB-INF/lib"디렉토리에 추가해야합니다. 런타임시 응용 프로그램의 클래스 경로에 자동으로 추가됩니다. –
모든 병은 이미 전쟁에서 WEB-INF/lib에 추가되었습니다. 하지만 여전히 런타임 클래스 경로 문제가 나타납니다. 미리 감사드립니다. –