2011-12-26 12 views
2

Javaプログラムやxmlファイルから外部的にファイルセットを取得するときに、fileset antタスクにファイルのセットを含めるにはどうすればよいですか?ファイルセット、外部ソースからインクルード?

従来我々は、カスタマイズのこれらの種類の包含および除外正規表現を使用し

<fileset ...> 
<include name="**/*Test.java" /> 
<exclude name="**/*.txt" /> 

しかし、私はすでに、この場合のように彼らに私たちの条件を課すために、含まれるファイルについて何も知りませんテストで終了し、txtファイルを無視するjavaファイルを含めるべきであることをご存知でしょうか。

インクルードおよび除外するファイルは、Javaプログラムのような外部ソースまたはxml形式で提供されます。そのような場合にはファイルセットに含まれていますか?

<include>  
    <targetclass name="com.samples.ClassToBeIncluded1" />    
    <targetclass name="com.samples.ClassToBeIncluded2" /> 
    <targetclass name="com.samples.ClassToBeIncluded3" />    
    <targetclass name="com.samples.ClassToBeIncluded4" /> 
</include> 

するクラスについての詳細を示している:言う私はこのようなinput.xmlを持っている。これを成し遂げるために、Antスクリプト内グルーヴィーなタスクをthis..Included行う方法を考え出し

答えて

1

<property name="instrumentedclasses" value=""/> 
:新しいプロパティがあるシンプルなグルーヴィーなパーサを使用してファイルを解析し、含まれるクラスのセットを指定するアリの新しいプロパティを設定...

included..I外部入力を読み取って、プロパティを設定3210

グルービースクリプトは、次のとおり

<groovy> 
    def xmlParser = new XmlParser() 
    def includeStr = "" 
    def eachFile = new File('input.xml') 
    def includeRootNode = xmlParser.parse(eachFile)   
    includeRootNode.targetclass.each{ targetClassNode -> 
     def className = targetClassNode.attribute("name") 
     className = className.replace(".","/") 
     includeStr = includeStr +className+".class " 

    } 
    properties["instrumentedclasses"] = includeStr 

</groovy> 

新たに設定されたプロパティは、必要なクラス包含する以下Antスクリプトによって使用される:

<fileset dir="${classes.dir}" includes="${instrumentedclasses}" /> 
関連する問題