ant项目异常堆栈信息显示Unknown Source

有个项目生产上抛异常不显示行数,一直是Unknown Source。查了下因为ant编译和java编译默认参数不一样:
javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息
ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出Unknown Source信息

解决办法,添加:

debug="true" debuglevel="source,lines,vars"

修改前:

<!--编译源文件-->
	<target name="compile" depends="init">
		<javac encoding="UTF-8" srcdir="${src.dir}" destdir="${build.classes}">
			<classpath refid="classpath" />
		</javac>
		<copy todir="${build.classes}">
			<fileset dir="${src.dir}" excludes="**/*.java" />
		</copy>
	</target>

修改后:

<!--编译源文件-->
	<target name="compile" depends="init">
		<javac encoding="UTF-8" srcdir="${src.dir}" destdir="${build.classes}" debug="true" debuglevel="source,lines,vars">
			<classpath refid="classpath" />
		</javac>
		<copy todir="${build.classes}">
			<fileset dir="${src.dir}" excludes="**/*.java" />
		</copy>
	</target>

两个参数编译后的对比:
修改前

修改后

多了行号,变量真实名称

参考资料:
https://blog.csdn.net/weixin_30731305/article/details/98762524
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值