棘手的Ant文件集(包括大多数,但不是全部目录)

Chr*_*sel 25 ant

我有一个案例,我只是无法弄清楚如何让Ant只在文件集中提取我想要的文件(为什么地球上没有Ant人们只使用正则表达式?).

这是情况.我在classes目录下有一堆类.我想要:

1)课程下的所有文件,

2)但不是/ com/foo/bar下的那些

3)除了我想要/com/foo/bar/AbstractCustomerAdapter.class和CustomerAdapterFactory.class.

/ com/foo/bar下的文件通常被命名为FooCustomerAdapter.class.

简而言之,我们创建了2个罐子,其中一个仅包含客户特定的adpaters,另外一个包含其他所有内容.这允许我们创建一个新的客户适配器并换掉那个迷你jar.杀死我的上面的文件集就是"其他一切".

一旦Ant排除了一个文件,没有包含会把它带回来,因此第2和第3项让我对如何处理文件集感到不安.如何排除所有客户适配器,而不是排除抽象客户适配器?我没有蚂蚁兼容的通配符可以排除XZYCustomerAdapter类而不排除AbstractCustomerAdapter.

好吧,至少我想不出一个,但希望你们中的一个Stack Overflow居民比我更聪明:)

小智 47

接受单个文件集的大多数任务也可以接受多个文件集.

<jar file="...">
  <fileset dir="classes">
    <exclude name="com/foo/bar/**"/>
  </fileset>

  <fileset dir="classes">
    <include name="com/foo/bar/AbstractCustomerAdapter.class"/>
    <include name="com/foo/bar/CustomerAdapterFactory.class"/>
  </fileset>
</jar>
Run Code Online (Sandbox Code Playgroud)