myProject
│---Folder BO --┬a.java
│ ├atest.java
│ └build.xml
│---Folder DAO -┬b.java
│ ├btest.java
│ └build.xml
│---Folder DB --┬c.java
│ ├ctest.java
│ └build.xml
└---build.xml(说明:a.java调用b.java,b.java调用c.java)我在每个目录下都放了个build.xml
那现在是这样,我的工程都编译完成了,我只想运行a.java但是他却调用不了b.java,请问是哪里出了问题?我的Folder BO目录下的build.xml应该怎么写?难道只能通过最外层的build.xml运行吗?不能单独运行其中一个类吗?我急呀!!在线等待!
│---Folder BO --┬a.java
│ ├atest.java
│ └build.xml
│---Folder DAO -┬b.java
│ ├btest.java
│ └build.xml
│---Folder DB --┬c.java
│ ├ctest.java
│ └build.xml
└---build.xml(说明:a.java调用b.java,b.java调用c.java)我在每个目录下都放了个build.xml
那现在是这样,我的工程都编译完成了,我只想运行a.java但是他却调用不了b.java,请问是哪里出了问题?我的Folder BO目录下的build.xml应该怎么写?难道只能通过最外层的build.xml运行吗?不能单独运行其中一个类吗?我急呀!!在线等待!
ant的意思就是编译这些有依赖关系的文件,你应该在根目录里面写一个build.xml
然后执行ant就能编译整个工程
<javac srcdir="myProject" destdir="classes" deprecation="off"/>
</target>
还有,如果我用最外层的build.xml直接编译了整个工程,现在我修改了a.java,能不能就直接编译a.java而不用去把其他没有改动的类都编译一边呢?
谢谢!
javac本身就有这个功能.
http://blog.csdn.net/cm4ever/archive/2005/02/28/305559.aspxhttp://java.mblogger.cn/cm4ever/posts/12480.aspx
<target name="compileA">
<javac ……………………>
</target>
<target name="compileB">
<javac ……………………>
</target>
这样。
那如果我使用每个模块一个build.xml的话,我的build.xml怎么写,该怎么用呢?
http://shark.enhydra.org但就算是这么出名的开源项目, 我使用他模块中的build.xml还是失败,后来也没打算使用.偶没有太多时间研究他.sorry
ant不用这样吧,如果你每个模块没有倚赖关系,可以一个模块一个build.xml
这里,明显你有依赖管系,那就要在上层建立build.xml咯
只是定义不同的target而已
从没见过写那么多的
看楼主的结构,如果一定要写多个的话,对于a.java 和atest.java中的build.xml,它必须编译所有的,就是你的JAVAC在build.xml文件里要把所有的都编译了,因为A用到B,B用到C。所以a.class 和b.class 和c.class都要存在。简单举个例子,常规来说只需要一个XML文件,里面有个compile的TARGET来编译所有在myProject里面的JAVA文件到build文件夹里,就是把所有的CLASS文件都放到里面。
你还分别有3个TARGET来运行atest和btest和alltest,如果只想测试A,就运行ATEST,只想测试B,就运行BTEST,如果全部测试,就运行ALLTEST。不过运行哪个,都会先运行depends里的。具体细节找本书看看,或者上ANT的网站有基本的FAQ。<target name="compile">
<javac srcdir="${myProject}" destdir="${build}">
<classpath refid="cp" />
</javac>
</target><target name="atest" depends="compile">
<junit printsummary="true">
<test name="B0.atest" />
<classpath refid="cp" />
</junit>
</target>
<target name="btest" depends="compile">
<junit printsummary="true">
<test name="DA0.btest" />
<classpath refid="cp" />
</junit>
</target><target name="alltest" depends="atest,btest">
<echo message="all tests pass."/>
</target>
还有,如果我用最外层的build.xml直接编译了整个工程,现在我修改了a.java,能不能就直接编译a.java而不用去把其他没有改动的类都编译一边呢?
谢谢!
-----------------------------------------------------------------------------------ant能检测出那些源文件做了修改,并且只对修改过的文件重新编译