问题
It's running my build.xml, when the error pops up that my build.xml is missing... This makes no sense.
<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>
As you can tell, I'm using a PHP-Maven file structure, but PHP-Maven is dead so I'm switching to Phing. Composer is located in src/main/php/lib/vendor. My build.sh:
#!/bin/sh
./phing build.xml
Output:
$ ./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:
./phing build.xml
You are running phing with the target "build.xml". This target does not exist. But the build file phing uses as default exists, which is build.xml
. If you want to run phing with a different build file name, you have to use the option -f
or --buildfile
, followed by the name of the file you want to use.
Because the existing target "build" is executed as default, you don't need to name ANY target at all.
./phing
would do.
./phing build
would also do, with explicitly naming the target to execute.
来源:https://stackoverflow.com/questions/19661935/why-is-phing-running-my-build-xml-and-then-saying-it-doesnt-exist