Chinaunix

标题: 为什么ant不能指定target [打印本页]

作者: sleep_meng    时间: 2005-05-15 18:22
标题: 为什么ant不能指定target
请教一下,为什么我执行
ant run    总是不起着用,build.xml 里有很多个target,可是不管我执行  ant run 还是 ant clean,它都是重头做到尾

  1. <?xml version="1.0"?>;

  2. <!-- ======================================================================= -->;
  3. <!-- JBoss build file                                                       -->;
  4. <!-- ======================================================================= -->;

  5. <project name="JBossEJB3" default="run" basedir=".">;

  6.    <property environment="env"/>;
  7.    <property name="src.dir" value="${basedir}/src"/>;
  8.    <property name="jboss.home" value="${env.JBOSS_HOME}"/>;
  9.    <property name="build.dir" value="${basedir}/build"/>;
  10.    <property name="build.classes.dir" value="${build.dir}/classes"/>;

  11.    <!-- Build classpath -->;
  12.    <path id="classpath">;
  13.       <fileset dir="${jboss.home}/lib">;
  14.          <include name="**/*.jar"/>;
  15.       </fileset>;
  16.       <fileset dir="${jboss.home}/server/all/lib">;
  17.          <include name="**/*.jar"/>;
  18.       </fileset>;
  19.       <fileset dir="${jboss.home}/server/all/deploy/ejb3.deployer">;
  20.          <include name="*.jar"/>;
  21.       </fileset>;
  22.       <fileset dir="${jboss.home}/server/all/deploy/jboss-aop-jdk50.deployer">;
  23.          <include name="*.jar"/>;
  24.       </fileset>;
  25.       <pathelement location="${build.classes.dir}"/>;
  26.       <!-- So that we can get jndi.properties for InitialContext -->;
  27.       <pathelement location="${basedir}"/>;
  28.    </path>;

  29.    <property name="build.classpath" refid="classpath"/>;

  30.    <!-- =================================================================== -->;
  31.    <!-- Prepares the build directory                                        -->;
  32.    <!-- =================================================================== -->;
  33.    <target name="prepare">;
  34.       <mkdir dir="${build.dir}"/>;
  35.       <mkdir dir="${build.classes.dir}"/>;
  36.    </target>;

  37.    <!-- =================================================================== -->;
  38.    <!-- Compiles the source code                                            -->;
  39.    <!-- =================================================================== -->;
  40.    <target name="compile" depends="prepare">;
  41.       <javac srcdir="${src.dir}"
  42.          destdir="${build.classes.dir}"
  43.          debug="on"
  44.          deprecation="on"
  45.          optimize="off"
  46.          includes="**">;
  47.          <classpath refid="classpath"/>;
  48.       </javac>;
  49.    </target>;

  50.    <target name="ejbjar" depends="compile">;
  51.       <jar jarfile="build/tutorial.ejb3">;
  52.          <fileset dir="${build.classes.dir}">;
  53.             <include name="**/*.class"/>;
  54.          </fileset>;
  55.       </jar>;
  56.       <copy file="build/tutorial.ejb3" todir="${jboss.home}/server/all/deploy"/>;
  57.    </target>;

  58.    <target name="run" depends="ejbjar">;
  59.       <java classname="org.jboss.tutorial.stateless.client.Client" fork="yes" dir=".">;
  60.          <classpath refid="classpath"/>;
  61.       </java>;
  62.    </target>;

  63.    <!-- =================================================================== -->;
  64.    <!-- Cleans up generated stuff                                           -->;
  65.    <!-- =================================================================== -->;
  66.    <target name="clean.db">;
  67.       <delete dir="${jboss.home}/server/all/data/hypersonic"/>;
  68.    </target>;

  69.    <target name="clean">;
  70.       <delete dir="${build.dir}"/>;
  71.       <delete file="${jboss.home}/server/all/deploy/tutorial.ejb3"/>;
  72.    </target>;


  73. </project>;
复制代码

作者: wolfg    时间: 2005-05-15 18:34
标题: 为什么ant不能指定target
build.xml 贴出来看看
作者: sleep_meng    时间: 2005-05-15 20:16
标题: 为什么ant不能指定target
  1. <?xml version="1.0"?>;

  2. <!-- ======================================================================= -->;
  3. <!-- JBoss build file                                                       -->;
  4. <!-- ======================================================================= -->;

  5. <project name="JBossEJB3" default="run" basedir=".">;

  6.    <property environment="env"/>;
  7.    <property name="src.dir" value="${basedir}/src"/>;
  8.    <property name="jboss.home" value="${env.JBOSS_HOME}"/>;
  9.    <property name="build.dir" value="${basedir}/build"/>;
  10.    <property name="build.classes.dir" value="${build.dir}/classes"/>;

  11.    <!-- Build classpath -->;
  12.    <path id="classpath">;
  13.       <fileset dir="${jboss.home}/lib">;
  14.          <include name="**/*.jar"/>;
  15.       </fileset>;
  16.       <fileset dir="${jboss.home}/server/all/lib">;
  17.          <include name="**/*.jar"/>;
  18.       </fileset>;
  19.       <fileset dir="${jboss.home}/server/all/deploy/ejb3.deployer">;
  20.          <include name="*.jar"/>;
  21.       </fileset>;
  22.       <fileset dir="${jboss.home}/server/all/deploy/jboss-aop-jdk50.deployer">;
  23.          <include name="*.jar"/>;
  24.       </fileset>;
  25.       <pathelement location="${build.classes.dir}"/>;
  26.       <!-- So that we can get jndi.properties for InitialContext -->;
  27.       <pathelement location="${basedir}"/>;
  28.    </path>;

  29.    <property name="build.classpath" refid="classpath"/>;

  30.    <!-- =================================================================== -->;
  31.    <!-- Prepares the build directory                                        -->;
  32.    <!-- =================================================================== -->;
  33.    <target name="prepare">;
  34.       <mkdir dir="${build.dir}"/>;
  35.       <mkdir dir="${build.classes.dir}"/>;
  36.    </target>;

  37.    <!-- =================================================================== -->;
  38.    <!-- Compiles the source code                                            -->;
  39.    <!-- =================================================================== -->;
  40.    <target name="compile" depends="prepare">;
  41.       <javac srcdir="${src.dir}"
  42.          destdir="${build.classes.dir}"
  43.          debug="on"
  44.          deprecation="on"
  45.          optimize="off"
  46.          includes="**">;
  47.          <classpath refid="classpath"/>;
  48.       </javac>;
  49.    </target>;

  50.    <target name="ejbjar" depends="compile">;
  51.       <jar jarfile="build/tutorial.ejb3">;
  52.          <fileset dir="${build.classes.dir}">;
  53.             <include name="**/*.class"/>;
  54.          </fileset>;
  55.       </jar>;
  56.       <copy file="build/tutorial.ejb3" todir="${jboss.home}/server/all/deploy"/>;
  57.    </target>;

  58.    <target name="run" depends="ejbjar">;
  59.       <java classname="org.jboss.tutorial.stateless.client.Client" fork="yes" dir=".">;
  60.          <classpath refid="classpath"/>;
  61.       </java>;
  62.    </target>;

  63.    <!-- =================================================================== -->;
  64.    <!-- Cleans up generated stuff                                           -->;
  65.    <!-- =================================================================== -->;
  66.    <target name="clean.db">;
  67.       <delete dir="${jboss.home}/server/all/data/hypersonic"/>;
  68.    </target>;

  69.    <target name="clean">;
  70.       <delete dir="${build.dir}"/>;
  71.       <delete file="${jboss.home}/server/all/deploy/tutorial.ejb3"/>;
  72.    </target>;


  73. </project>;
复制代码

作者: sleep_meng    时间: 2005-05-15 20:32
标题: 为什么ant不能指定target
各们请帮忙看一下到底是什么问题好吗

先谢谢了
作者: wolfg    时间: 2005-05-15 20:51
标题: 为什么ant不能指定target
执行target run肯定要按顺序执行prepare、compile和ejbjar,由depends决定
作者: sleep_meng    时间: 2005-05-15 22:17
标题: 为什么ant不能指定target
我知道执行 ant run 必须先执行前面几个,可是它执行完前面几个后, run 目标不执行,我查了很多资料都不知道到底是为什么,而且 执行 ant clean  也还是从头开始执行到 target ejbjar 后就不执行了,target  clean 并没有依赖其它的,不知道为什么就是不能执行 clean 而是从头开始但又不执行完。
作者: wolfg    时间: 2005-05-15 22:20
标题: 为什么ant不能指定target
有什么信息输出?
作者: perryhg    时间: 2005-05-15 22:26
标题: 为什么ant不能指定target
一种情况是你前面的步骤中有error,导致run停止执行,另一种可能是run里面已经执行了,但是由于环境有问题,没有得到你想要的结果,你可以在run里面放一些echo看看,有没有输出。
作者: sleep_meng    时间: 2005-05-15 22:58
标题: 为什么ant不能指定target
现在通过实验,把第一行
<project name="JBossEJB3" default="run" basedir=".">;
中的 default 的值改为 run 时可以 执行 ant run, 改成 clean 后可以执行 ant clean, 为什么会这样呢?

没改的情况下在target run 中加 echo 也没有输出,说明没有执行,而且最后显示 build seccessful
作者: sleep_meng    时间: 2005-05-17 14:29
标题: 为什么ant不能指定target
请各们看一下好吗?
为什么ant 每次都只能执行 default指定的那个target,
不管里面有多少个target,它都只执行default指定的那个,
作者: wolfg    时间: 2005-05-17 22:59
标题: 为什么ant不能指定target
是啊,你若只用ant当然只执行default指定的
作者: perryhg    时间: 2005-05-18 02:17
标题: 为什么ant不能指定target
default是默认,也就是说你只输入了ant,其他什么参数也没有,就会运行这个,其他target应该是输入ant mytarget 的时候可以直接执行的。
对了,你的ant是什么版本?还有要确认你ant的path,有些软件包会带有自己的ant,可能和你系统的ant有冲突,unix下面可以用which ant看看你到底用的哪个ant
作者: sleep_meng    时间: 2005-05-22 06:14
标题: 为什么ant不能指定target
but the problem is, when i input ant run, ant clean, etc. It exec the default target  too.
作者: perryhg    时间: 2005-05-23 03:17
标题: 为什么ant不能指定target
第一,确定你ant的版本,第二,确定你运行ant的时候的确是调用了%ANT_HOME%\bin\ant.bat  很多时候有的软件包自带ant.bat, ant.pl等等,如果你不慎运行了其他的ant,会造成结果有偏差。
作者: qingwaxw1980    时间: 2010-05-19 16:09
按下面的方法执行:
ant [target]

target --- 是你要执行的目标




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2