【问题标题】:Why is Phing running my build.xml, and then saying it doesn't exist?为什么 Phing 运行我的 build.xml,然后说它不存在?
【发布时间】:2013-10-30 04:58:26
【问题描述】:

它正在运行我的 build.xml,当弹出我的 build.xml 丢失的错误时......这没有任何意义。

<project name = "php_project" default = "build" >
    <!-- ============================================ -->
    <!-- Target: prepare -->
    <!-- ============================================ --> 
    <target name = "prepare" >
        <echo msg = "Making directory ./target" />
        <mkdir dir = "./target" />
    </target>
    <!-- ============================================ -->
    <!-- Target: build -->
    <!-- ============================================ -->
    <target name = "build" depends = "prepare" >
        <echo msg = "Copying files to build directory..." />
        <echo msg = "Copying ./src/main/php/lib to ./target/lib directory..." />
        <copy file = "./src/main/php/lib" tofile = "./target/lib" />
        <echo msg = "Copying ./src/main/php/webapp to ./target/webapp directory..." />
        <copy file = "./src/main/php/webapp" tofile = "./target/webapp" />
    </target>
</project>

如您所知,我使用的是 PHP-Maven 文件结构,但 PHP-Maven 已死,所以我正在切换到 Phing。 Composer 位于 src/main/php/lib/vendor。我的 build.sh:

#!/bin/sh
./phing build.xml

输出:

$ ./build.sh
Buildfile: ./build.xml
Override ignored for user property phing.file
Override ignored for user property phing.dir
Adding reference...
  +Task definition: ...
  +User datatype: ...
  +Target: prepare
  +Task: echo
  +Task: mkdir

BUILD FAILED
exception 'BuildException' with message 'Target 'build.xml' does not exist in this project.' in php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Project.php:935
Stack trace:
#0 php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Project.php(867): Project->_tsort('build.xml', Array, Array, Array, Array)
#1 php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Project.php(817): Project->_topoSort('build.xml', Array)
#2 php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Project.php(797): Project->executeTarget('build.xml')
#3 php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Phing.php(574): Project->executeTargets(Array)
#4 php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Phing.php(172): Phing->runBuild()
#5 php_project/src/main/php/lib/vendor/phing/phing/classes/phing/Phing.php(272): Phing::start(Array, NULL)
#6 php_project/src/main/php/lib/vendor/phing/phing/bin/phing.php(43): Phing::fire(Array)
#7 php_project/src/main/php/lib/vendor/phing/phing/bin/phing(20): require_once('php_project/...')
#8 {main}

Total time: 0.0560 seconds

【问题讨论】:

    标签: php maven ant phing


    【解决方案1】:

    ./phing build.xml

    您正在使用目标“build.xml”运行 phing。该目标不存在。但是默认存在的构建 file phing 存在,即build.xml。如果您想使用不同的构建文件名运行 phing,则必须使用选项 -f--buildfile,后跟要使用的文件名。

    因为现有目标“build”是默认执行的,所以您根本不需要命名任何目标。

    ./phing 可以。

    ./phing build 也可以,明确指定要执行的目标。

    【讨论】:

    • 我认为在安装 Phing 和尝试让 archive_tar 工作之间的某个地方,我丢失了 -f 标志,因为最初我将它拉到 straight from the manual,第 26 页,并将其放入 build.sh 文件中。当然,我多次移动、编辑和删除了这个 build.sh 文件,试图修复 archive_tar 错误。
    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 2022-01-19
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    相关资源
    最近更新 更多