Ant构建文件找不到mysql程序

时间:2011-09-04 22:13:19

标签: mysql eclipse ant

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

  1. 将/ usr / local / mysql / bin添加到我的路径并使用“echo $ PATH”进行验证。
  2. 通过项目中的“属性”将/ usr / local / mysql / bin添加到Eclipse中的类路径中。
  3. 将build.xml添加到Eclipse中的构建路径(仅适用于grins。)
  4. 我正在跑步:

    • Mac OS X 10.7.1
    • Eclipse Indigo Build 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>
    

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

任何理由不仅仅使用Ant的SQL taskConnector/J

在任何情况下,听起来您还没有确保在执行Ant构建时使用的/usr/local/mysql/bin上有PATH可用。 Ant构建配置中有一个Environment选项卡,允许您修改Eclipse将运行Ant构建文件的环境路径。

答案 2 :(得分:0)

我会尝试一些事情:

将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>