我想为一些插件创建phing任务,所以目录结构是这样的
root
- plugin1
- index.php
- plugin2
- index.php
Run Code Online (Sandbox Code Playgroud)
等等..
我想在每个子目录上运行相同的任务 - 例如
这可能吗?我需要类似的东西
<foreach param="filename" absparam="absfilename" target="subtask">
<fileset dir=".">
<include name="*.php"/>
</fileset>
</foreach>
Run Code Online (Sandbox Code Playgroud)
但对于目录.
或者我是否必须为每个插件独立编写build.xml?
非常感谢.
据我所知,在属性文件中有一个值数组是不可能的.在属性中存储多个值的最佳解决方案是什么?
例如属性文件的一部分
# directory definitions
# containing e.g. CSS, Javascript, ...
project.dirname_css = css
project.dirname_js = javascript
Run Code Online (Sandbox Code Playgroud)
我想要的是一系列属性,如:
# directory definitions
# containing e.g. CSS, Javascript, ...
project.dirname_css = [css,portal_specific]
project.dirname_js = [javascript,portal_specific]
Run Code Online (Sandbox Code Playgroud)
在build.xml中循环它们
任何建议如何做到这一点?
我可以想象通过以下方式划分价值; 并在build.xml中爆炸它们.有更好的建议吗?
我们使用phing来部署我们的php应用程序,我们在部署环境时遇到了一个小问题.
我们有2个不同的生产环境(每个环境都有不同的配置文件)和一个单独的测试环境.我们在测试环境中没有问题,因为我们在测试环境中有一个不同的分支.问题是我们在生产环境中使用相同的分支.
有人建议我们如何使用不同的配置/设置文件部署到我们的生产环境中?我们宁愿将生产分支保留为单个分支,但不知何故将配置文件分开.我们使用zend框架,我知道配置文件中可以有的不同部分,但我们也有一个用于phing的设置文件.
我环顾四周,但似乎无法找到将命令行参数传递给phing的方法.这样的东西真的很有用:
phing -f build.xml production_live1
Run Code Online (Sandbox Code Playgroud) 我有一个phpunit.xml(phpunit的配置文件),如下所示:
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="./tests/bootstrap.php"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
strict="true"
verbose="true"
colors="true">
<testsuites>
<testsuite name="My Tests">
<directory>./tests</directory>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
正如DRY所说,我不想简单地将phpunit.xml的内容复制并粘贴到我的build.xml中以运行具有相同配置的phpunit.
我在Phing的build.xml中的目标如下所示:
<target name="unit-test">
<phpunit printsummary="true" />
</target>
Run Code Online (Sandbox Code Playgroud)
即使那个phpunit应该自动找到phpunit.xml(当我手动启动它就像输入"phpunit"到我的终端并按下输入,它工作)并使用它,在phing的情况下,输出看起来像这样:
[phpunit] Total tests run: 0, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00122 s
Run Code Online (Sandbox Code Playgroud)
那么有什么方法,如何达到描述的行为?
我正在尝试将文件夹的内容移动到Phing中的另一个目的地.我不能直接从SVN下载内容,因为它们是拉链的.解压缩文件后,我想移动内容.
我发现了这种语法,但它不起作用: 使用phing复制整个目录
谢谢!
phing是否可以根据命令行实现一些任务?
例如:
phing install tag = 1.0 dest =/tmp/1.0
我实际上只看到3种方法
从命令行调用phing目标时,其他命令行参数是否无用?
我正在尝试在Phing中设置一个mysql导入脚本,但"<"导致XML错误.有任何想法吗?
<exec command="mysql -u${mysql.username} -p${mysql.password} -h ${mysql.server} ${mysql.database} < ${sql.file}" />
Run Code Online (Sandbox Code Playgroud)
我正在考虑让dbDeploy这样做,但如果有一个简单的方法可以工作(单行命令与dbDeploy的多行设置),那就太棒了
我正在构建一个phing部署脚本,我首先要求用户输入要从svn部署的修订版/标记.
当用户输入例如0.1时,我想检查(使用linux脚本或从svn本身)如果这个0.1版本确实存在.如果它不存在,我想打印错误并停止.
非常感谢您分享您的专业知识!
使用"build /"文件夹可以放置和"构建"所有源代码有什么好处?
也许这是一个愚蠢的问题,但我正在尝试理解与PHP的持续集成.用于phing的build.xml的任何示例都使用这样的构建/文件夹,但是对于PHP来说有一点意义,其中签出的项目不需要编译,只需要基本配置.复制所有到构建/只会复杂的事情,因为你已经翻番文件和文件夹+1到Web根路径(如果你想有web用户界面来运行Selenium测试)
特别是我需要phing两种情况:
1)让新用户设置他的第一次安装(或更新旧),正确的工作副本
2)运行unit/func-tests,phpcc,phpcs,phpdoc等(通常在CI服务器上) )
我应该为第二项任务"建立/"吗?PHP的最佳实践是什么?
我正在尝试使用Phing来调用git并拉出一个远程私有存储库,但它不起作用.
这是我的Phing代码:
<project name="test" default="main">
<!-- Get User Variables -->
<property file="build.properties" />
<!-- Declare Variables -->
<property name="base.dir" value="../" />
<property name="git.repository" value="git@github.com:test/test.git" />
<!-- Pull Git Release -->
<target name="git.pull">
<gitpull
repository="${git.repository}"
source="origin"
refspec="${git.release}"
/>
</target>
<target name="main" depends="git.pull">
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时我得到这个错误:
You must specify readable directory as repository.
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?还是有一个有效的例子?
phing ×10
php ×5
build-script ×1
command-line ×1
deployment ×1
github ×1
mysql ×1
phpunit ×1
svn ×1
target ×1