linvar
2009-08-24 20:21
浏览 486
已采纳

ant javac 编译多个源文件夹

项目下有 ${wh_src}, ${src}, ${lib}, ${build}四个文件夹
${src}中的类依赖${wh_src},
单独编译${wh_src}可以成功
[code="java"]






[/code]

但是单独编译${src},或者将${wh_src},${src}同时编译
则一直显示compiling
结果是${src}没有编译出结果,但又没有报错
what's the matter?
any help?

[b]问题补充:[/b]
@lovewhzlq, thanks
怎么设置依赖呢?
编译的时候已经有两个

我看ant的文档是编译可以不分先后,
也就是我的依赖已经包括进来了?
我找不到其他合适的的子命令去设置依赖,sourcepath?
[b]问题补充:[/b]
thanks.
可能我没有讲清楚.
我现在是在一个中编译两个源文件夹${src},${wh_src}
${src}中的java类调用了${wh_src}中的某些java类,
现在是想同时编译这两个源文件夹:
[code="java"]







[/code]

如果拿掉编译通过
如果拿掉显示正在编译中...没有结果
如果保留这两个src, 显示正在编译中...没有结果(也不报错)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • wanghaolovezlq 2009-08-24 22:33
    已采纳

    http://www.iteye.com/topic/78973

    3.2Targets

    一个target可以依赖于其他的target。例如,你可能会有一个target用于编译程序,一个target用于生成可执行文件。你在生成可执行文件之前必须先编译通过,所以生成可执行文件的target依赖于编译target。Ant会处理这种依赖关系。

    然而,应当注意到,Ant的depends属性只指定了target应该被执行的顺序-如果被依赖的target无法运行,这种depends对于指定了依赖关系的target就没有影响。

    Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target。然而,要记住的是只要某个target依赖于一个target,后者就会被先执行。

    假定我们要执行target D。从它的依赖属性来看,你可能认为先执行C,然后B,最后A被执行。错了,C依赖于B,B依赖于A,所以先执行A,然后B,然后C,最后D被执行。

    一个target只能被执行一次,即时有多个target依赖于它(看上面的例子)。

    如果(或如果不)某些属性被设定,才执行某个target。这样,允许根据系统的状态(java version, OS, 命令行属性定义等等)来更好地控制build的过程。要想让一个target这样做,你就应该在target元素中,加入if(或unless)属性,带上target因该有所判断的属性。例如:

    如果没有if或unless属性,target总会被执行。

    可选的description属性可用来提供关于target的一行描述,这些描述可由-projecthelp命令行选项输出。

    将你的tstamp task在一个所谓的初始化target是很好的做法,其他的target依赖这个初始化target。要确保初始化target是出现在其他target依赖表中的第一个target。在本手册中大多数的初始化target的名字是"init"。

    target有下面的属性:

    AttributeDescriptionRequired

    nametarget的名字Yes

    depends用逗号分隔的target的名字列表,也就是依赖表。No

    if执行target所需要设定的属性名。No

    unless执行target需要清除设定的属性名。No

    description关于target功能的简短描述。No

    点赞 打赏 评论
  • wanghaolovezlq 2009-08-24 21:32

    你应该设置依赖啊

    因为${src}中的类依赖${wh_src},

    点赞 打赏 评论
  • wanghaolovezlq 2009-08-24 22:47

    你设置依赖嘛,让${wh_src}先编译,完成之后再编译src

    点赞 打赏 评论

相关推荐 更多相似问题