ant脚本调用java函数,调用另一个 Ant 脚本的 Ant 脚本的奇怪行为,为什么?

我是Ant的新手(我来自Maven),我发现做以下操作有很多问题 .

我有一个名为 CrystalIceGUI 的主项目,它使用另一个名为 ShellExtBridge 的依赖项目 .

依赖项目 ShellExtBridge 有一个自己的 build.xml 文件,用于编译项目并将其打包到一个jar文件中,该文件被放入一个名为 Release 的目录中 .

主项目 CrystalIceGUI 的 build.xml ant文件包含一个名为 init 的目标,它试图执行 ShellExtBridge depency项目的 build.xml 文件来构建这个项目,然后在另一个目标中使用它的jar .

问题是如果我执行 ShellExtBridge 的build.xml ant脚本它运行良好并且jar文件正确地创建到其 Release 目录中(所以我认为这个ant脚本没问题)但是如果我从 build.xml 调用它主要项目它给了我一系列的错误 .

这是 ShellExtBridge 依赖项目的 build.xml :

这是主项目 CrystalIceGUI 的 build.xml 文件的 init 目标:

如果我去执行这个ant脚本的 init 目标,我会得到以下错误:

Buildfile: /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/build.xml

init:

clean:

[echo] Into ShellExtBridge build.xml clean target

[delete] Deleting directory /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/bin

compile:

[echo] Into ShellExtBridge build.xml compile target

[mkdir] Created dir: /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/bin

[javac] /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/ShellExtBridge/Project/build.xml:37: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds

[javac] Compiling 117 source files to /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/bin

[javac] /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/src/com/techub/crystalice/utils/QuickLocale.java:8: package org.apache.log4j does not exist

[javac] import org.apache.log4j.Logger;

[javac] ^

[javac] /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/src/com/techub/crystalice/fuse/AtmosFuseWrapper.java:8: package org.apache.log4j does not exist

[javac] import org.apache.log4j.Logger;

[javac] ^

[javac] /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/src/com/techub/crystalice/fuse/AtmosFuseWrapper.java:11: package com.techub.crystalice.jaxb.settings does not exist

[javac] import com.techub.crystalice.jaxb.settings.DriveType;

[javac]

...............................................................................

...............................................................................

ETCETCETC MANY OTHERS SIMILAR ERRORS

...............................................................................

...............................................................................

BUILD FAILED

/home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/build.xml:70: The following error occurred while executing this line:

/home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/ShellExtBridge/Project/build.xml:37: Compile failed; see the compiler error output for details.

如您所见,似乎调用了依赖项 ShellExtBridge 项目的 build.xml ant脚本,因为显示了此ant脚本的 echo messages .

但是有一些奇怪的东西,因为当调用 ShellExtBridge 的build.xml脚本时执行以下操作:

[echo]进入ShellExtBridge build.xml清理目标 [delete] Deleting directory /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/bin 编译:[echo]进入ShellExtBridge build.xml编译目标 [mkdir] Created dir: /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/bin [javac] /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/ShellExtBridge/Project/build.xml:37:警告:'includeantruntime'未设置,默认为build.sysclasspath = last;对于可重复的构建,设置为false

它删除此目录 /home/andrea/Documenti/XCloud/Implementazione/CrossPlatform/CrystalIceGUI/Project/bin 而不是正确的目录,该目录是与 ShellExtBridge 项目中的bin目录相关的目录 .

看起来像这样,当它调用 ShellExtBridge 项目的ant文件时,丢失了它的引用并对主项目的文件夹而不是正确的项目进行操作 .

你有什么想法要解决它吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值