Pregunta

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
¿Fue útil?

Solución

./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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top