3

我正在开发一个包含多个模块(如模块 A 和模块 B)的项目(我们称之为应用程序 A)。在这个项目中使用了这些模块,但我也希望将这些模块公开给其他项目(例如,应用程序 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

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

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

但这不会产生packages.json我想要的。文件中唯一的包packages.json是应用程序 A,但我希望所有模块包都在这个文件中,所以我希望 Composer/Satis 扫描所有 composer.json文件(也在子文件夹中)。

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

我在我的 Satis 配置文件中尝试了很多东西,比如设置、、trunk-path和,但我可以让它工作。branches-pathtags-pathpackage-path

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

提前致谢!

4

1 回答 1

0

我不认为 satis 支持这一点 - 我绕过它的方法是使用rake添加构建步骤,尽管您可以使用phing甚至是 shell 脚本,它遍历我们的 svn repo 中的所有路径并生成一个 config.json那。这确实意味着每次添加 svn 存储库时都必须重新运行 buildstep,但无论如何,您都需要将 satis 创建作为 cronjob / post commit hook 运行。

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

于 2013-05-29T14:40:40.753 回答