今天公司的配置管理员,发邮件给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在编译时,加入了依赖关系的检查,编译通过,并生成了相应的部署包
分享到:
相关推荐
ant 编译jar包
使用ant打war包使用ant打war包使用ant打war包使用ant打war包使用ant打war包使用ant打war包
使用Ant编译打包
ant脚本编译出jar
通过ant脚本,编译打包android工程。 编译打包android工程的ant脚本,Android官方提供的打包脚本。 有注释
命令行中ant打war包,一个简单易懂的小例子
使用Ant构建web项目 从编译到测试 生成测试报告 打包 邮件发送 远程下载tomcat 部署运行一条龙服务之ant脚本
Ant构建J2EE应用,通常从版本控制器SVN或其他下载源码,以下为Ant SVN依赖JAR包
ANT配置,打包,编译
用ant完成VSS自动下载编译部署的脚本
ant 编译、打包、部署项目的build文件
ant标签说明、ant案例、ant与eclipse工具配置以及使用
介绍了如何通过ant进行java web工程的编译操作的详细配置
直接使用flex的sdk生成swc文件,很繁琐,而且对于大项目来说,是个头痛的事情。ant在对java打包生成jar时,它优良的设计显露无疑,这里我们使用它,来生成swc,完成项目编译打包。
打包:将编译后的*.calss文件打包成 jar或war包; 部署:将打包后的war文件部署到制定的web应用服务器中去。(tomcat的webappers中去) ******************************* ant默认执行build.xml文件 ant是使用的java...
在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。本文介绍了android编译和ant打包原理
一个普通java程序用ant打包的列子,完整的,里面采用的是eclipse自带的编译插件进行的打包,需要结合eclipse中的插件一起使用
用Eclipse IDE可以自动生成ANT的build文件,但是该文件的路径名移植性太差。当应用hudson一类的自动化平台来构建Eclipse插件时,不能直接调用ANT工具来编译。本工具自动修改Eclipse的路径为 ${ECLIPSE_HOME},并且...
博文链接:https://sunrie.iteye.com/blog/109470