您的位置:首页 > 其它

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

2016-11-07 09:14 357 查看
今天公司的配置管理员,发邮件给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在编译时,加入了依赖关系的检查,编译通过,并生成了相应的部署包
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐