클라이언트, 서버 및 클라이언트 + 서버 빌드 파일이 있습니다. 여기에 그들이 :
Client
Server
Client+ServerAnt를 사용한 빌드 후 클래스 경로 변경
편집이 : 그냥 완전히 명확하게하기 위해, 내가 지금에 문제가 있어요 유일한 파일은 Server
입니다. 나는 그들이 어떻게 연결되어 있는지 보여주기 위해 다른 사람들을 포함 시켰지만, 그들은 볼 필요가 없다.
문제는 서버에 있습니다. 나는 모든 라이브러리를 서버 귀와 번들링하고 있지만 classpath가 만들어지면 라이브러리의 상대 위치는 ../
입니다. 나는 ../../
이 필요합니다. 클래스 경로를 ../../
으로 pathconvert 한 빌드를 수행하면 빌드가 끝날 때까지 그 위치에 있지 않기 때문에 라이브러리를 찾을 수 없습니다.
항아리가 만들어지면이 앤트 빌드를 클래스 패스로 변경할 수 있습니까? (나는 이것이 가능하지 않다는 것을 깨닫는다.)
또는 클래스 패스를 얻을 수 있도록 빌드하기 전에 이것을 처리하는 더 좋은 방법이 있습니까?
요청에 따라 여기에 제가 우려하고있는 부분이 있습니다. 특히 server.package
및 server.app_package
타겟. 라이브러리는 귀에 번들로 제공됩니다. 따라서 클래스 패스는 ../../
이어야합니다.
<project name="GPServer" default="dist" basedir=".">
<description>
</description>
<!-- set global properties for this build -->
<dirname property="server.basedir" file="${ant.file.GPServer}"/>
<property name="server.src" location="${server.basedir}/src"/>
<property name="server.build" location="${server.basedir}/build"/>
<property name="server.dist" location="${server.basedir}/dist"/>
<property name="server.lib" location="${server.basedir}/lib"/>
<property name="deploy.location" location="${server.basedir}/../../jboss-as-7.1.1.Final/standalone/deployments"/>
<property name="jboss.lib" location="${server.basedir}/../../jboss-as-7.1.1.Final/standalone/lib"/>
<path id="server.class.path">
<!-- <fileset dir="${server.basedir}/lib">
<include name="*.jar"/>
</fileset> -->
<fileset dir="${server.lib}">
<include name="*.jar"/>
</fileset>
<fileset dir="${server.basedir}">
<include name="*.properties"/>
</fileset>
</path>
<pathconvert property="server.modified.class.path" refid="server.class.path">
<globmapper from="../*" to="../../*" />
</pathconvert>
<path id="final.server.classpath">
<pathelement path="${server.modified.class.path}"/>
</path>
<target name="server.init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${server.build}"/>
<mkdir dir="${server.dist}"/>
</target>
<target name="server.compile" depends="server.init" description="compile the source " >
<!-- Compile the java code from ${src} into ${dist} -->
<javac srcdir="${server.src}" destdir="${server.dist}" >
<classpath>
<path refid="final.server.classpath"/>
</classpath>
</javac>
</target>
<target name="server.package" depends="server.compile" description="create the jar" >
<manifestclasspath property="manifest.path" jarfile="${server.dist}/GrahamsProjServer.jar">
<classpath refid="final.server.classpath"/>
</manifestclasspath>
<jar destfile="${server.dist}/GrahamsProjServer.jar" basedir="${server.dist}" excludes="*.jar">
<manifest>
<attribute name="Class-Path" value="${manifest.path}"/>
</manifest>
</jar>
</target>
<target name="server.app_package" depends="server.package" description="create the jar" >
<ear destfile="${server.dist}/GrahamsProjServer.ear" appxml="${server.basedir}/META-INF/application.xml" >
<metainf dir="${server.basedir}/META-INF"/>
<fileset dir="${server.dist}" includes="*.jar"/>
<fileset dir="${server.basedir}" includes="lib/*.jar" />
</ear>
</target>
<target name="server.deploy" depends="server.package" description="generate the distribution" >
<!-- Create the distribution directory -->
<ear destfile="${deploy.location}/GrahamsProjServer.ear" appxml="${server.basedir}/META-INF/application.xml" >
<metainf dir="${server.basedir}/META-INF"/>
<fileset dir="${server.dist}" includes="*.jar"/>
<fileset dir="${server.basedir}" includes="lib/*.jar" />
</ear>
</target>
<target name="server.clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${server.build}"/>
<delete dir="${server.dist}"/>
<echo message="Deleting files in ${deploy.location}"/>
<delete>
<fileset dir="${deploy.location}" excludes="*.txt"/>
</delete>
</target>
</project>
당신은 어떤 순서로 전화를 걸고 있습니까? –
문제의 코드 조각을 포함하십시오. 몇 달 후에 링크가 404가됩니다. –