ant求助

loreorion 2005-04-06 09:50:29
对于以下的两个文件build.xml应该怎么写
Hello2.java
package demo;
public class Hello2{
public static String sayHello() {
return "Hello";
}
}
**************************
Hello2Test.java
import demo.*;
public class Hello2Test{
public static void main(String[] args) {
System.out.println(Hello2.sayHello());
}
}
*************************
以下是我写的build.xml,但是compile2总也能不过,手动编译
javac -cp ./build/class -d ./build/class Hello2Test.java 没问题
<?xml version="1.0"?>
<project name="buildTemplet" default="compile" basedir=".">
<property name="src.dir" value="."/>
<property name="build.dir" value="build"/>
<property name="build.class" value="${build.dir}/class"/>

<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.class}"/>
</target>
<target name="compile">
<javac srcdir="${src.dir}" destdir="${build.class}">
<exclude name="**/*Test.java"/>
</javac>
</target>
<target name="compile2">
<javac srcdir="${src.dir}" destdir="${build.class}" classpath="${build.class}">
<include name="**/*Test.java"/>
</javac>
</target>
</project>
...全文
162 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
qxjavajava 2005-04-06
  • 打赏
  • 举报
回复
<javac srcdir="src/main" destdir="build/classes">
<classpath refid="classpath"/>
</javac>
-->
<path id="classpath">
<pathelement location="${build.classes}"/>
<pathelement path="${java.home}/lib/tools.jar"/>
</path>

这是我用的 你稍微调整一下看看
loreorion 2005-04-06
  • 打赏
  • 举报
回复
ant不光是通过default和depends才能执行target,可以通过ant target_name来执行,很感谢你的热心,但问题不在这里
qxjavajava 2005-04-06
  • 打赏
  • 举报
回复
错误信息里说你 无法访问 Hello2 这个目录
飞行的兔子 2005-04-06
  • 打赏
  • 举报
回复
呵呵,楼上的急了!
rower203 2005-04-06
  • 打赏
  • 举报
回复
我这么还没说明白!!?

把这行<project name="buildTemplet" default="compile" basedir=".">
改为<project name="buildTemplet" default="compile2" basedir=".">
再把这行<target name="compile2">
改为<target name="compile2" depends="compile,prepare">

这样才能执行到compile2,不然你这么改compile2都是没用的.
loreorion 2005-04-06
  • 打赏
  • 举报
回复
上面的那个图片文件是错误信息
loreorion 2005-04-06
  • 打赏
  • 举报
回复
http://bbs.sjtu.edu.cn:8000/District5/1112757407110790.jpg
rower203 2005-04-06
  • 打赏
  • 举报
回复
default="compile2"然后
<target name="compile2" depends="compile,prepare">
这样才能执行到compile2,不然你这么改compile2都是没用的.
qxjavajava 2005-04-06
  • 打赏
  • 举报
回复
把错误信息贴出来看看吧
loreorion 2005-04-06
  • 打赏
  • 举报
回复
我是用ant prepare等先执行好了prepare和compile,然后再用ant compile2来执行的

把compile2里的
<include name="**/*Test.java"/>
改成
<include name="**/Hello2Test.java"/>
结果一样

错误信息和不加classpath的javac一样
rower203 2005-04-06
  • 打赏
  • 举报
回复
default="compile2"然后
<target name="compile2" depends="compile,prepare">
rower203 2005-04-06
  • 打赏
  • 举报
回复
default="compile"然后
<target name="compile2" depends="compile,prepare">
rower203 2005-04-06
  • 打赏
  • 举报
回复
"compile2"并没被执行到呀!
DreamDragon_NEU 2005-04-06
  • 打赏
  • 举报
回复
把compile2里的
<include name="**/*Test.java"/>
改成
<include name="**/Hello2Test.java"/>试一试~~~
飞行的兔子 2005-04-06
  • 打赏
  • 举报
回复
如果前面几个运行成功的话,在compile2加入depends="compile,prepare"试试!
即改成<target name="compile2" depends="compile,prepare">
飞行的兔子 2005-04-06
  • 打赏
  • 举报
回复
如果前面几个运行成功的话,在compile2加入depends="compile,prepare"试试!
即改成<target name="compile2" depends="compile,prepare">
loreorion 2005-04-06
  • 打赏
  • 举报
回复
前面几个target运行都OK
DreamDragon_NEU 2005-04-06
  • 打赏
  • 举报
回复
环境变量里设置ant_home了??
loreorion 2005-04-06
  • 打赏
  • 举报
回复
改成这样了,可还是一样的错
<path id="classpath">
<pathelement location="${build.class}"/>
<pathelement path="${java.home}/lib/tools.jar"/>
</path>
<target name="compile2">
<javac srcdir="${src.dir}" destdir="${build.class}">
<include name="**/*Test.java"/>
<classpath refid="classpath"/>
</javac>
</target>

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧