问题描述
||
我使用以下命令创建了带有单元测试的axis2 soap客户端项目:
wsdl2java -t -uri http://myDomain.tld/myService.svc?wsdl
然后我运行ant
并得到构建错误,因为它找不到junit方法,例如fail(),assertNotNull()等。我意识到我需要编译器引用junit jar。查看build.xml
,我看到以下内容:
<property name=\"classes\" value=\"${build}/classes\"/>
<property name=\"lib\" value=\"${build}/lib\"/>
因此,我将ѭ4放置在build.lib子文件夹中。我仍然遇到相同的错误。我还需要做什么来吸引蚂蚁来构建我的项目?
更新:
我对build.xml进行了以下更改:
添加lib文件夹作为id为local.class.path的路径
<path id=\"local.class.path\">
<fileset dir=\"${lib}\">
<include name=\"*.jar\"/>
</fileset>
</path>
然后,我修改了init任务以查找junit:
<available classpathref=\"local.class.path\" property=\"junit.available\" classname=\"junit.framework.TestCase\"/>
<condition property=\"jars.ok\">
<and>
<isset property=\"stax.available\"/>
<isset property=\"axis2.available\"/>
<isset property=\"junit.available\"/>
</and>
</condition>
<!--Print out the availabilities-->
<echo message=\"Stax Availability= ${stax.available}\"/>
<echo message=\"Axis2 Availability= ${axis2.available}\"/>
<echo message=\"JUnit Availability= ${junit.available}\"/>
奇怪的是输出是:
H:\\Code\\Java\\test.axis2> ant pre.compile.test
Buildfile: H:\\Code\\Java\\RiskTools.axis2\\build.xml
init:
[mkdir] Created dir: H:\\Code\\Java\\test.axis2\\build
[mkdir] Created dir: H:\\Code\\Java\\test.axis2\\build\\classes
[mkdir] Created dir: H:\\Code\\Java\\test.axis2\\build\\lib
pre.compile.test:
[echo] Stax Availability= true
[echo] Axis2 Availability= true
[echo] JUnit Availability= ${junit.available}
BUILD SUCCESSFUL
Total time: 0 seconds
因此,由于行[echo] JUnit Availability = $ {junit.available},看来我做错了
解决方法
显然,
build/lib
是瞬变文件夹,被by9吹走了。我在项目根目录下创建了一个名为lib的文件夹,然后对build.xml进行了以下操作。
在词根中加ѭ10
然后,将上面的path语句更改为:
<path id=\"local.class.path\">
<fileset dir=\"${dep_libs}\">
<include name=\"*.jar\"/>
</fileset>
</path>
然后一切正常。