我正在将我的 Java 源文件编译 ( javac
) 为 gen/bin
像这样:
myproject/
src/
(all my source code)
gen/bin/
com.me.myorg.fizz.*
com.me.myorg.buzz.*
com.me.myorg.foo.*
com.me.myorg.bar.*
碰巧每个顶级包(fizz、buzz、foo、bar)之间存在零 (0) 个依赖关系;因此 foo
中什么也没有在 foo
之外有依赖关系等
我想从此设置创建 4 个不同的 JAR 文件:
-
fizz.jar
-
buzz.jar
-
foo.jar
-
bar.jar
这意味着我需要 4 <jar>
我里面的任务 jar-all
像这样的目标:
<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 中放置哪些包裹?显然,我想要以下包/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
想法?
最佳答案
只需将类文件的路径包含在与您的完全限定包名称相对应的路径下:
<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
表示所有类文件,包括子目录中的类文件。
关于java - 运行 Ant 的 jar 任务时如何挑选包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24758805/