Javac在ANT build.xml中排除了包

时间:2010-10-01 10:11:18

标签: web-services ant javac

我正在尝试编译我的所有包,除了其中两个,这是我在build.xml中的javac看起来像

<javac srcdir="${src}" destdir="${output}" debug="${debug}" failonerror="yes" >
    <exclude name="com/abc/uyyy/**"/>
    <exclude name="com/abc/zzz/**"/>
    <include name="com/abc/zzz/Text.java"/>
    <patternset refid="excluded.from.compilation.abc"/>
    <classpath refid="abc.module.classpath"/>
</javac>

但是包中的所有文件都被编译:(。

我已阅读文档(http://ant.apache.org/manual/Tasks/javac.html),但仍然没有成功,有任何帮助吗?

注意:在编译Text.java之后,我需要构建WSDL文件,然后构建排除的包。我正在使用Metro来编写和构建我的WS。

3 个答案:

答案 0 :(得分:2)

是不是可以将所有类文件编译到一个目录中,然后使用下面的复制任务只复制你想要的WSDL文件?

<target name="copy_all_class_files">
    <copy todir="${output}">
        <fileset dir="classes">
            <include name="com/abc/zzz/Text.class"/>
            <exclude name="com/abc/uyyy/**"/>
            <exclude name="com/abc/zzz/**"/>
        </fileset>
    </copy>
</target> 

答案 1 :(得分:2)

好的,这就是我做的,我编写了一个新的目标,只编译WS文件,然后生成类,它工作正常:)

<target name="compile-ws-server">
        <javac srcdir="${src}" destdir="${output}"
        debug="${debug}" failonerror="yes">
            <include name="com/abc/xxx/Text.java"/>
            <exclude name="${src}/abc/xxx/**"/>
            <classpath refid="abc.module.classpath"/>
        </javac>
    </target>

答案 2 :(得分:0)

以上都不是正确的方式......

我做过像

<target name="compile" depends="init">
    <javac srcdir="${src}" destdir="${build}" excludes="com/company/example/test/**" />
</target>

这里我们应该避免放置$ {src}并从src文件夹开始。