2014-07-15 71 views
2

我編譯(javac)我的Java源文件gen/bin像這樣:如何在運行Ant的jar任務時櫻桃選擇包?

myproject/ 
    src/ 
     (all my source code) 
    gen/bin/ 
     com.me.myorg.fizz.* 
     com.me.myorg.buzz.* 
     com.me.myorg.foo.* 
     com.me.myorg.bar.* 

碰巧有(0)每個頂級包之間的依賴關係(嘶嘶聲,嗡嗡聲,FOO ,酒吧); ERGO沒什麼foofoo外部依賴性等

我想從這個設置創建4個不同的JAR文件:

  • fizz.jar
  • buzz.jar
  • foo.jar
  • bar.jar

這意味着我需要我的jar-all目標內4個<jar>任務,像這樣:

<target name="jar-all"> 
    <jar destfile="gen/dist/fizz.jar"> 
     <fileset dir="gen/bin" includes="???" /> --> How do I specify **only** com.me.myorg.fizz.* classes ??? 
    </jar> 

    <!-- 3 other nearly-identical JAR tasks... --> 
</target> 

我怎麼去採摘櫻桃哪些包獲得放置在每個罐子?顯然,我想要下面的包/ jar實現:

com.me.myorg.fizz.* --> fizz.jar 
com.me.myorg.buzz.* --> buzz.jar 
com.me.myorg.foo.* --> foo.jar 
com.me.myorg.bar.* --> bar.jar 

想法?

回答

2

只需提供相應的完全合格的包名的路徑下的路徑,類文件:

<jar destfile="gen/dist/fizz.jar"> 
    <fileset dir="gen/bin" includes="com/me/myorg/fizz/**/*.class" /> 
</jar> 

<jar destfile="gen/dist/buzz.jar"> 
    <fileset dir="gen/bin" includes="com/me/myorg/buzz/**/*.class" /> 
</jar> 

<jar destfile="gen/dist/foo.jar"> 
    <fileset dir="gen/bin" includes="com/me/myorg/foo/**/*.class" /> 
</jar> 

<jar destfile="gen/dist/bar.jar"> 
    <fileset dir="gen/bin" includes="com/me/myorg/bar/**/*.class" /> 
</jar> 

**/*.class意味着所有的類文件,裏面包括子目錄的,如果任何。