ant 因为依赖关系导致无法编译通过,无法生成部署用的war包

今天公司的配置管理员,发邮件给leader,说无法生成新的war包
仔细查看了邮件的内容

[javac] F:\project\src\main
\project\com\info\trunk\web\controller\BaseJsonController.java:6: 软件包 com.
info.fgw.web.controller 不存在
[javac] import com.info.fgw.web.controller.BaseJsonLoggerController;
[javac] ^
[javac] F:\project\src\main
\project\com\info\trunk\web\controller\BaseJsonController.java:33: 找不到符号

[javac] 符号: 类 BaseJsonLoggerController
[javac] public abstract class BaseJsonController extends BaseJsonLoggerController
[javac] F:\project\src\main\project\com\info\invest\dao\check\CheckDaoImpl.java:5: 软件包 com.info.fgw.util.rptrule 不存在

代码在IDE中是完全可以编译的。
用关键字 ant 编译 找不到符号 google,没有找到正确的解决方案
ant compile package not exists 再搜索, 使用ant -v 来查看编译的更详细输出。
在详细输出中,看到有这样的提示信息

[javac] '-sourcepath'
[javac] 'F:\project\src\main\project'
[javac] '-encoding'
[javac] 'UTF-8'
[javac] '-g'

只包含了代码的一个分支,另一个分支src\main\fgw,在编译的时候,没有包含进来,所以就在BaseJsonController和CheckDaoImpl这里出现了找不到符号的编译错误,查看项目中ant的build文件中的编译输出的相关部分:

<macro-compile srcdir="${main.src.dir.trunk}" destdir="${main.classes.dir}" classpathref="main.compile.classpath"/>
<macro-compile srcdir="${main.src.dir.fgw}" destdir="${main.classes.dir}" classpathref="main.compile.classpath"/>

认为这里是错误的,在编译的时候,是顺序执行的,如果在分支fgw中增加了一些功能,而在分支trunk中引用新增的功能后,编译在检查依赖时出现了错误。修改为:

<macro-compile srcdir="${main.src.dir.trunk};${main.src.dir.fgw}" destdir="${main.classes.dir}" classpathref="main.compile.classpath"/>

这样ant在编译时,加入了依赖关系的检查,编译通过,并生成了相应的部署包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值