2013-07-11 230 views
0

我的Java項目有兩個目錄,src/tests/,其中包含產品代碼和測試代碼,分別排除我的JUnit測試類。螞蟻 - 從罐

的封裝結構中的每個目錄鏡像—如果src/具有包A.B.C,然後tests/也具有等效包A.B.C.來自src/tests/的源文件被編譯到目錄bin/中。由於鏡像包結構,包a.b.c的測試類與a.b.c的生產類混合在一起。

我想要一個Ant目標在bin/建立一個罐子,從類,但不包括所有的測試文件。我想通過映射每個文件名tests/a/b/c/D.java==>bin/a/b/c/D.class並從jar中排除映射的文件名來完成此操作。

事情是這樣的:

<target ...> 
    <!-- Build a jar that contains the class files which came from --> 
    <!-- source files under src/, but not those which came from --> 
    <!-- source files under tests/ --> 
    <jar ...> 
     <fileset dir="bin"> 
      <!-- EXCLUDE LOGIC --> 
     </fileset> 
    </jar> 
</target> 

回答

2

最好的解決方案是將您的src文件編譯爲一個compile目標一bin目錄,並編譯一個test-compile目標test文件到testbin目錄。您在test-compile目標設置爲<javac>類路徑以包括bin目錄和JUnit和嘲諷的罐子。您需要首先將資源複製到bin目錄,以便您可以使用它們並用測試版本覆蓋它們。

+0

實測值替代瞭如何使用螞蟻排除模式這裏要做到這一點(沒有單獨的測試目錄):http://alvinalexander.com/blog/post/java/how-exclude-files-classes-compile-java-project -螞蟻 – Brian