【问题标题】:Setting classpath in ANT build.xml using regular expression使用正则表达式在 ANT build.xml 中设置类路径
【发布时间】:2016-09-15 01:35:46
【问题描述】:

我正在尝试创建一个 jar 文件,该文件需要类路径中的 eclipse 插件。所以我试图在“pathelement”标签的路径属性中给出一个正则表达式。

这是我的示例代码

<target name="compile" depends="init,copy-non-java-files">
    <javac srcdir="${src}" destdir="${build}" source="1.6">
        <classpath>
            <pathelement path="${java.class.path}/" />
            <fileset dir="*\\eclipse\\plugins">
                <include name="**/*.jar" />
            </fileset>
            <fileset dir="${lib}">
                <include name="**/*.jar" />
            </fileset>
        </classpath>
    </javac>
</target>

但是当我尝试构建时,我构建失败,因为 ant 无法评估类路径。

我不是在寻找 ant4Eclipse 解决方案,但我想知道是否可以在 ant 中使用正则表达式,如果可以,任何人都可以建议我在这里做错了什么。

【问题讨论】:

    标签: java regex ant classpath


    【解决方案1】:

    问题出在这部分:

    <fileset dir="*\\eclipse\\plugins">
        <include name="**/*.jar" />
    </fileset>
    

    fileset 元素不接受 dir 属性中的全局模式。 dir 指定根目录,include 嵌套元素中的所有包含文件都存在于该根目录下。因此目录必须是一个特定的路径。

    如果此构建旨在生成基于 Eclipse 的 Jar(例如 Eclipse 插件),则应该在 Eclipse Ant 中定义一个指向 Eclipse 安装的现有 Ant 属性,例如 ${eclipse.home}。

    【讨论】:

    • 我可以做到,但eclipse安装路径在不同用户系统上可能不同,我不能硬编码
    • @Learner 那么你不应该依赖 Eclipse 安装。提供所需的插件或强制用户安装 Eclipse 并传递指向该安装的 Ant 属性。
    • 在 Eclipse Ant 中应该有一个指向安装的属性。
    • 感谢您的建议,但是否还有其他解决方法。我将从 python 调用这个 build.xml。
    • @Learner 你将如何从 Python 中调用它?您应该将其添加到代码中。可能会帮助人们回答你的问题。也许这可以帮助你。 stackoverflow.com/questions/3730880/…除非有更多信息,否则没有人能给你正确的答案
    猜你喜欢
    • 1970-01-01
    • 2017-02-21
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2011-07-30
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多