为什么Phing运行我的build.xml,然后说它不存在?

时间:2013-10-29 15:05:54

标签: php maven ant phing

它正在运行我的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

1 个答案:

答案 0 :(得分:2)

  

./ phing build.xml

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

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

./phing会这样做。

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