【问题标题】:Ant build file cannot find mysql programAnt构建文件找不到mysql程序
【发布时间】:2011-09-04 22:13:19
【问题描述】:

我正在 Mac 上学习 Java 和 Eclipse。我在一个项目中有一个 Ant 构建文件,其中包含用于创建 MySql 数据库和表并插入行以设置项目数据的 sql 语句。我已经正确设置了 MySql 并且可以在终端中使用“mysql”命令没有问题,但是当我在 Eclipse 中运行 Ant build.xml 文件时,我得到:“BUILD FAILED。无法运行程序“mysql”: error=2, 没有这样的文件或目录” 我做了以下没有成功:

  1. 将 /usr/local/mysql/bin 添加到我的路径并使用“echo $PATH”进行验证。
  2. 通过项目的“属性”将 /usr/local/mysql/bin 添加到我在 Eclipse 中的类路径中。
  3. 在 Eclipse 的构建路径中添加了 build.xml(只是为了笑)

我正在跑步:

  • Mac OS X 10.7.1
  • Eclipse Indigo 构建 ID:20110615-0604
  • MySql 5.5.15-osx10.6-x86_64

感谢您的帮助!

这是我的 build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="publisher" default="all" basedir=".">
    <property name="mysql.params" value="-u publisher -ppublisher -D publisher" />
    <target name="all" depends="cleandb, createdb, insertdb"></target>

    <target name="cleandb">
        <exec executable="mysql" input="cleandb.sql">
            <arg line="${mysql.params}" />
        </exec>
    </target>

    <target name="createdb">
        <exec executable="mysql" input="createdb.sql">
            <arg line="${mysql.params}" />
        </exec>
    </target>

    <target name="insertdb">
        <exec executable="mysql" input="insertdb.sql">
            <arg line="${mysql.params}" />
        </exec>
    </target>
</project>

【问题讨论】:

  • 嗨,你能发布你的 build.xml sn-p 吗?
  • 嗨,凯文,抱歉耽搁了。这是我的 build.xml 文件。如果我使用 mysql bin 文件夹的完整路径,它可以正常工作。

标签: mysql eclipse ant


【解决方案1】:

当您从命令行运行 Ant 构建时,它是否有效?如果是这样,它可能与此处描述的问题相同:

Running ant through eclipse it doesn't find environment variables, but running ant through terminal is fine

【讨论】:

    【解决方案2】:

    有什么理由不只使用 Ant 的 SQL taskConnector/J

    无论如何,听起来您只是没有确定在执行 Ant 构建时使用的 PATH 上是否存在 /usr/local/mysql/bin。 Ant 构建配置中有一个 Environment 选项卡,应该允许您修改 Eclipse 将在其中运行您的 Ant 构建文件的环境的路径。

    【讨论】:

    • 感谢 ig0774。除了我现在不知道更好之外没有其他原因! :) 我已将路径添加到 build.xml 文件属性和 Eclipse 首选项中的 Ant 运行时类路径,但仍然得到相同的消息。我一定是错过了添加它的正确位置,但我没有看到任何其他位置。
    【解决方案3】:

    有几件事我会尝试:

    将searchpath属性设置为true(默认为false):

    <target name="cleandb">
        <exec executable="mysql" input="cleandb.sql" searchpath="true">
            <arg line="${mysql.params}" />
        </exec>
    </target>
    

    使用嵌套的 env 元素设置路径。

    <property environment="env"/>
    <exec ... >
        <env key="PATH" path="${env.PATH}"/>
    </exec>
    

    【讨论】:

    • 两种方法的错误相同。真的很奇怪。没什么大不了的,我猜。这是我正在努力学习的书中的一个练习。如果我使用 mysql 的完整路径,它工作正常。我只想知道为什么,因为我确信它会在现实世界中再次出现。 :) 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2011-02-06
    • 2013-08-18
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    相关资源
    最近更新 更多