'在哪里构建'文件夹属于CodeIgniter?

时间:2014-08-27 10:56:01

标签: php apache codeigniter jenkins

我试图掌握构建工具,而且我正在努力解决一些基础问题。

我在本地Win7机器上使用XAMPP。我已经设置了虚拟主机,因此我可以处理多个应用程序(。\ xampp \ apache \ conf \ extra \ _ httpd-vhosts.conf)

所以我有这个:

app1
   php
      application
          cache
          config
          controllers
          core
          ...
          views
      assets
      system
   tests
   vendor

app2
   php 
      application
                         ...etc

现在我尝试使用本指南安装和设置Jenkins:http://jenkins-php.org/automation.html

然后在" Automation" .... 构建脚本假定PHP_CodeSniffer和PHPMD的规则集位于build / phpcs.xml和build / phpmd.xml。

构建从何而来?它属于哪里?

1 个答案:

答案 0 :(得分:1)

嗯,您所指的链接是关于Ant项目以及如何将其与Jenkins一起使用。我希望你已经完成了Jenkins的安装。在Ant中,您有一个XML文件(通常是 build.xml ),您可以在其中定义各种目标。每个目标都做了一些工作,比如清理(最后构建的已编译二进制文件),编译,打包等。如果您不了解Ant脚本的工作原理,则必须仔细阅读详细信息。就 build 文件夹而言,如果您将浏览为build.xml文件提供的link,您将看到以下这些行:

<arg value="${basedir}/build/phpmd.xml"/>
<arg value="--standard=${basedir}/build/phpcs.xml"/>

在Ant中, basedir 是完成所有路径计算的地方。有关 basedir 和Ant脚本的详细信息,请参阅this链接。通常,您的项目&#39;输出( class 文件,如果是Java项目)放在 build 文件夹下。我没有参与PHP项目,但是从上面提到的语句开始,即&#34; 构建脚本假定PHP_CodeSniffer和PHPMD的规则集位于build / phpcs.xml和build / phpmd.xml。&#34;,Ant脚本假定两个XML文件都应位于相同的 build 文件夹下。在了解了您正在做的事情后,您可以将这些XML的位置更改为任何其他位置,但仅

在build.xml文件中完成自定义后,您将在Jenkins中使用此文件(在Build > Invoke Ant部分下)。如果有的话,Jenkins将使用您定义的参数运行脚本。

<强>更新
它并不像你想的那样。我刚从 Java 项目的经验中解释了 build 文件夹的重要性。在 PHP 中,如果您浏览Ant文件,您将意识到build目录更像所有与构建相关的脚本的目录,例如phpmd.xml,phpmd保留.xml等

Ant 创建 build 目录。相反,它的 main 意图是确保构建目录中的子目录存在,如下面的代码所示:

<target name="prepare" depends="clean" description="Prepare for build">
  <mkdir dir="${basedir}/build/api"/>
  <mkdir dir="${basedir}/build/coverage"/>
  <mkdir dir="${basedir}/build/logs"/>
  <mkdir dir="${basedir}/build/pdepend"/>
  <mkdir dir="${basedir}/build/phpdox"/>
</target>

构建目录中的文件夹实际上是存储build.xml 输出的目录,如下面的语句所示:

Executing the build.xml script will produce the following build directory:

build
|-- api ...
|-- coverage ...
`-- logs
    |-- checkstyle.xml
    |-- clover.xml
    |-- crap4j.xml
    |-- jdepend.xml
    |-- junit.xml
    |-- phploc.csv
    |-- pmd-cpd.xml
    `-- pmd.xml