首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ant宏: fileset as javac src element

ant宏: fileset as javac src element
EN

Stack Overflow用户
提问于 2015-10-13 04:12:00
回答 2查看 457关注 0票数 1

我有一个ant (1.9.4)宏,它接受类似路径的结构作为src参数,当我尝试运行它时,我得到了'FILE_NAME.java is not a directory'

我的构建文件:

代码语言:javascript
复制
<project name="test" default="main">
    <macrodef name="testm">
        <element name="srcdir"/>
        <sequential>
            <javac destdir="target">
                <src>
                    <srcdir/>
                </src>
            </javac>
        </sequential>
    </macrodef>

    <target name="build-project">
        <testm>
            <srcdir>
                <fileset dir="src">
                    <include name="**/*.java"/>
                </fileset>
            </srcdir>
        </testm>
    </target>

    <target name="main" depends="build-project"/>
</project>
EN

回答 2

Stack Overflow用户

发布于 2015-10-13 20:01:17

尝试调用像这样的宏

代码语言:javascript
复制
<testm>
    <srcdir>
        <path location="src"/>
    </srcdir>
</testm>
票数 0
EN

Stack Overflow用户

发布于 2015-10-13 22:55:13

嵌套在<javac>下的<src>不能有嵌套在其中的<srcdir>

相反,从<testm>的调用者传递<src> ...

代码语言:javascript
复制
<macrodef name="testm">
    <element name="srcdir"/>
    <sequential>
        <!-- Nest <srcdir> directly under <javac> -->
        <javac destdir="target">
            <srcdir/>
        </javac>
    </sequential>
</macrodef>

<target name="build-project">
    <testm>
        <srcdir>
            <!-- Pass <src> directly to <javac> via the macrodef -->
            <src path="src"/>
        </srcdir>
    </testm>
</target>

我删除了<include name="**/*.java"/>,因为默认情况下<javac>包含所有**/*.java文件。

作为另一个示例,您可以使用一个参数将多个<javac>选项传递给<testm> ...

代码语言:javascript
复制
<macrodef name="testm">
    <element name="javac-args"/>
    <sequential>
        <javac destdir="target">
            <javac-args/>
        </javac>
    </sequential>
</macrodef>

<target name="build-project">
    <testm>
        <javac-args>
            <src path="src"/>
            <classpath>
                <pathelement location="my.jar"/>
            </classpath>
        </javac-args>
    </testm>
</target>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33089405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档