2014-07-15 44 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意味着所有的类文件,里面包括子目录的,如果任何。