在为SMS网关编写Java API时,我的ANT构建脚本遇到了一些问题。
基本上我想要做的是只能在构建文件中的一个位置指定服务的用户名和密码,但能够从构建文件中的任何位置调用发送SMS的任务。我现在拥有的是:
<smsConfig password="${sms.password}" user="${sms.user}">
<sms msg="England prevails" to="XXXXXXXX"/>
</smsConfig>
执行任务时,sms任务类中的execute方法从smsConfig类中获取值,并且已成功发送SMS。
我想要的是:
<smsConfig password="${sms.password}" user="${sms.user}"/>
稍后,也许在另一项任务中:
<sms msg="England prevails" to="XXXXXXXX"/>
不幸的是,如果我这样做,就无法再访问存储在SmsConfig类中的静态值(我得到一个空指针异常,即使它们在SmsConfig类中的execute方法运行时有一个值)。
那么我如何(以及在何处)将值存储在smsConfig任务和任何短信任务之间?
添加以根据前两个问题的反馈明确问题:
我希望保持配置与网关通信,与发送短信的行为分开,原因有两个:
答案 0 :(得分:0)
听起来我应该创建一个发送短信的目标,然后您可以使用AntCall task随时调用它,并使用适当的属性。
不幸的是,smsConfig
和sms
任务在这里做了什么并不完全清楚。我真的希望sms
任务包含自己的配置(可能作为嵌套元素),而不是smsConfig
中的嵌套元素。
答案 1 :(得分:0)
除非我读错了,否则你想要的是财产:
<property name="smsuser"
value="${sms.user}"/>
然后您可以稍后引用该属性,la:
<sms msg="England prevails" to="${smsuser}"/>