Composer:SVN存储库中的多个包

时间:2013-05-22 12:04:11

标签: svn composer-php satis

我正在开发一个项目(我们称之为应用程序A),它包含多个模块(如模块A和模块B)。这个模块在这个项目中使用,但我也希望这些模块暴露给其他项目(例如,应用程序B可以使用模块A)。主项目Application A位于具有以下(简化)目录结构的SVN存储库中:

trunk/
    module/
      moduleA/
       src/ 
       composer.json -> Composer file for module A
      moduleB/
        src/
        composer.json -> Composer file for module B
    composer.json -> Composer file for Application A

我正在使用composer来管理依赖项。我想使用Satis创建一个私有存储库,其中包含我的模块包(模块A,模块B等)。我将我的SVN存储库添加为我的Satis配置文件的存储库:

"repositories": [
    {
        "type": "vcs",
        "url": "svn://xxx/ApplicationA/"
    }
]

但这不会像我想要的那样生成packages.jsonpackages.json文件中唯一的包是Application A,但我希望所有模块包都在这个文件中,所以我希望Composer / Satis扫描所有 {{1}文件(也在子文件夹中)。

我可以为每个包添加一个特定的存储库,但我不希望这样,因为在这种情况下我需要为每个新模块编辑我的Satis配置。

我在Satis配置文件中尝试了很多设置composer.jsontrunk-pathbranches-pathtags-path,但我可以使用它。

简而言之:我正在努力让Composer / Satis在1个SVN存储库中使用多个包。有谁知道如何实现这一目标?或者也许有更好的方法来解决我的“问题”?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为不能满足于此 - 我绕过它的方式是使用rake添加构建步骤,尽管您可以使用phing甚至是shell脚本,它循环遍历所有路径在我们的svn repo中并从中生成了一个config.json。这意味着每次添加svn repo时都必须重新运行buildstep,但无论如何你都需要将happy创建作为cronjob / post commit hook运行。

如果无法构建脚本,则可能需要查看获取packagist设置,这需要您手动添加包,但不需要为每个存储库生成config.json条目。