java - Ant 构建文件还包含 derby 数据库 jar

标签 java ant build

嘿,

我有一个 RMI、客户端服务器应用程序,它还需要在服务器端包含 Derby 数据库驱动程序

我的树结构如下所示:

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

我的 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>

我发现无法将 derbyclient.jar 导入到我的服务器端,并且它找不到我的驱动程序。

如何修改构建以添加数据库驱动程序。

此致,

`

最佳答案

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

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

关于java - Ant 构建文件还包含 derby 数据库 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28152285/

相关文章:

java - Android,日期不保存在数据库中

java - 如何实例化和填充 Page<Object[]>

java - 从公共(public)基础(Java)构建不同的产品

tomcat - 使用 updateApplicationServer ANT 任务在 Tomcat 上更新 WAR 文件似乎需要重新启动应用程序服务器?

java - Maven 编译器插件总是将一组源检测为 "stale"

java - Google AppEngine Java Web 技术

java - 计算一个数组中的整数并将计数存储在另一个数组中

java - 每次使用不同的属性文件多次运行 Ant

java - Maven的pom.xml中的pluginManagement是什么?

java - 将 Jar Artifact 从 Bamboo 部署到 Artifactory