我想知道是否可以編寫一個Ant任務(如果需要,使用其他庫)來減少JAR文件,以便它只包含某些類以及它們所依賴的類。例如,我有一個包含類A,B,C和D的JAR,其中A和B都擴展C. D與其他類無關。我想要做的是指定一個Ant任務,我只需要B類,最後得到一個只包含B和C的JAR文件。Ant任務只保留JAR中的某些類,並進行依賴性檢查?
我見過this answer它提供了一種簡單的方式來說「I不希望A和d」,和我想象代替‘’用‘排除包括’可以讓我指定‘我想B和C’這樣的:
<jar destfile="stripped.jar">
<zipfileset src="full.jar" includes="path/B.class;path/C.class"/>
</jar>
...但有這樣做的依賴感知方式,以便我可以說「我想要B」但結束了包含B及其依賴項的JAR?
請注意,答案中提到的所有工具只能找到顯式依賴關係,而不能通過反射獲取依賴關係(其中包括依賴注入和許多應用程序框架採用的類似機制)。 – 2012-03-02 13:32:17