新的phing,我觉得愚蠢但是当我将一个构建文件导入另一个构建文件时。导入的构建文件不会执行。我一定有问题(注意$ phing --buildfile imported.xml运行正常)。
我试过了:
<?xml version="1.0" encoding="UTF-8"?>
<project name="myproject" default="project" basedir="." description="Set up project">
<target name="project">
<echo msg="Deploy" />
</target>
<import file="import.xml"/>
</project>
AND
<?xml version="1.0" encoding="UTF-8"?>
<project name="myproject" default="project" basedir="." description="Set up project">
<target name="project">
<echo msg="Deploy" />
<import file="import.xml"/>
</target>
</project>
答案 0 :(得分:1)
没关系,我发现你必须在默认目标内部。
所以现在:
<?xml version="1.0" encoding="UTF-8"?>
<project name="myproject" default="project" basedir="." description="Set up project">
<target name="project">
<echo msg="Deploy" />
<phingcall target="importedTarget" />
</target>
<import file="import.xml"/>
</project>
答案 1 :(得分:1)
我认为问题出在“命名空间”上。我向你解释我的情况,可能是你的。
我有一个导入此结构的build.xml文件:
.
├── bin
│ ├── phing
│ │ ├── qgpl
│ │ │ ├── console.xml
│ │ │ └── folder.xml
│ │ └── skel.xml
在build.xml底部导入这些任务
<import file="${tasks.dir}/phing/skel.xml" optional="false" />
<import file="${tasks.dir}/phing/qgpl/console.xml" optional="false" />
<import file="${tasks.dir}/phing/qgpl/folder.xml" optional="false" />
如果文件bin / phing / qgpl / console.xml定义为:
<project name="qgpl.console" basedir="${build.dir}" >
我得到了重复的目标:
phing -l
Buildfile: build.xml
[property] Loading etc/config.ini
[property] Loading etc/local-config.ini
[property] Loading etc/after-local-config.ini
Default target:
-------------------------------------------------------------------------------
build Build the application
Main targets:
-------------------------------------------------------------------------------
base64Encode Convertim a Base64 una cadena preguntada
[...]
qgpl_console.base64Encode Convertim a Base64 una cadena preguntada
但如果项目中只有一个base64Encode目标,我必须用
执行它phing base64Encode
因为
phing qgpl_console.base64Encode
什么都不做,没有错误但没有执行任何事情。
我修复它删除导入文件中的项目名称关键字
<project basedir="${build.dir}" >
在每个目标中添加“名称空间”
<target name="qgpl.console.base64Encode" description="Convertim a Base64 una cadena preguntada" >
<input propertyname="stringPlain">Input string to convert to Base64</input>
<qgpl.base64Encode string="${stringPlain}" returnProperty="string64" />
<echo>${string64}</echo>
</target>
我在文档中搜索,但我找不到其他方法。