我有一个网络应用程序。我想在 XX.war/WEB-INF/lib 中检测 com.mycompany*jar。我必须通过 ant cobertura 任务来执行此操作。
是否可以使用 ant 任务在 war 文件中的选定 jar 中检测类?
如果您的 jar 包含都在同一个包中的类,您可以使用带有“<includeClasses regex=...”的表单(注意:根据我的经验,在尝试 regex 之前尝试常规 glob 模式)。
您可以传递一个war 文件,它将检测WEB-INF/lib 中任何jar 中模式中的类(或WEB-INF/classes 中的类)。
<cob:cobertura-instrument datafile="${todir}/${instrument.ser.filename}" >
<includeClasses regex="com.mycompany.*" />
<instrumentationClasspath>
<pathelement path="${war.file}"/>
</instrumentationClasspath>
</cob:cobertura-instrument>
或者,如果您确实需要查明 WEB-INF/lib/ 文件夹中的特定 jar,您可以尝试使用 ant zip/jar 文件集的表单(我还没有尝试过):
<cob:cobertura-instrument datafile="${todir}/${instrument.ser.filename}" >
<zipfileset src="${war.file}" includes="WEB-INF/lib/com.mycompany*.jar"/>
</cob:cobertura-instrument>
如果一切都失败了,我会做你可能考虑过的事情:提取这些罐子,检测它们(使用第一种形式)并重新打包它们。