简体   繁体   English

Ant构建文件,其中还包括derby数据库jar

[英]Ant build file to include also the derby database jar

Hy, HY,

I have an RMI, Client Server app which needs also the Derby database driver to be includes on the server side 我有一个RMI,客户端服务器应用程序,它还需要在服务器端包含Derby数据库驱动程序

My tree structure looks like the following: 我的树结构如下所示:

s
│   buildcmmdc.xml
│   MyAnt.bat
│
├───lib
│       derbyclient.jar
│
└───src
    └───server
            derbyclient.jar
            ZodiacChinezesc.java
            Zodie.java
            ZodieImpl.java

My Ant build file cmmdcbuild1.xml 我的Ant构建文件cmmdcbuild1.xml

<project name="Server" default="Install" basedir=".">
    <description>Server actions </description>

  <property name="path" location=".."/>
  <property name="lib-dir" location="${path}/s/lib"/>
  <property name="package" value="server"/>
  <property name="interface-jar" location="${path}/i/public/classes/zodie" />
  <property name="jar-file" value="zodie.jar" />
  <property name="service-class" value="ZodieImpl"  />
  <property name="port" value="1099"/>
  <property name="hostRMIRegistry" value="localhost"/>
  <property name="hostResources" value="localhost"/>
  <property name="DERBY_HOME" location="D:/soft/db-derby-10.11.1.1-bin"/>

  <target name="Install">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <delete dir="src"/>
    <mkdir dir="src"/>
    <delete dir="public"/>
    <mkdir dir="public"/>
    <delete dir="public/classes"/>
    <mkdir dir="public/classes"/>
  </target>

  <target name="Init">
    <mkdir dir="src/${package}"/>
    <mkdir dir="public/classes/${package}"/>
    <copy file="${interface-jar}/${jar-file}" todir="public/classes" />
  </target>

<path id="jars">
    <fileset dir="${lib-dir}"> <include name="*.jar"/> </fileset>
    <pathelement path="${DERBY_HOME}/lib/derby.jar" /> 
</path>

  <target name="Compile" depends="Init"
        description="compile the source " >
    <javac srcdir="src"
       includes="${package}/**" destdir="public/classes"
       classpath="public/classes/${jar-file}"
    classpathref="jars"
       includeantruntime="false"/>
    <unjar  src="public/classes/${jar-file}" dest="public/classes" />
  </target>

  <target name="Archive">
     <jar destfile="zodie.jar" basedir="public/classes">
       <include name="${package}/*"/>
       <include name="zodie/*"/>
     </jar>
  </target>

  <target name="Rmi">
     <exec executable="rmiregistry">
       <env key="classpath" value="public/classes"/>
       <arg value="${port}" />
     </exec>
  </target>

  <target name="Server">
     <java classname="${package}.${service-class}"
        classpath="${path}/s/public/classes" fork="true">  
        <jvmarg value="-Djava.rmi.server.codebase=file:${path}/s/public/classes/"/>    
        <!-- <jvmarg value="-Djava.security.policy=server.policy" />-->
        <!-- <jvmarg value="-Djava.rmi.server.hostname=guliguli" />-->
        <!--
        <jvmarg value="-Djava.rmi.server.codebase=http://${hostResources}:8080/rmi/zodie.jar" />
        -->
        <!--
        <jvmarg value="-Djava.rmi.server.codebase=ftp://${hostResources}:2121/rmi/zodie.jar" />
        -->
        <arg line="${hostRMIRegistry} ${port}"/>
     </java>
  </target> 
</project>

I see not to get the derbyclient.jar to be imported into my server side and it dosen't find my driver. 我看到没有将derbyclient.jar导入到服务器端,并且找不到驱动程序。

How to modify the build in order to add also the database driver. 如何修改构建以便还添加数据库驱动程序。

Sincereley, Sincereley,

` `

在您的java标记中,使用classpathref属性,如下所示:

<java ..... classpathref="jars"> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM