2

我有一个网络应用程序。我想在 XX.war/WEB-INF/lib 中检测 com.mycompany*jar。我必须通过 ant cobertura 任务来执行此操作。

是否可以使用 ant 任务在 war 文件中的选定 jar 中检测类?

4

1 回答 1

1

如果您的 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>

如果一切都失败了,我会做你可能考虑过的事情:提取这些罐子,检测它们(使用第一种形式)并重新打包它们。

于 2013-10-01T16:42:49.327 回答