2013-05-22 32 views
3

我正在开发一个包含多个模块(如模块A和模块B)的项目(我们称之为应用程序A)。这些模块在这个项目中使用,但我也希望这些模块可以暴露给其他项目(例如,应用程序B可以使用模块A)。主项目Application A位于SVN仓库中,具有以下(简化)目录结构:作曲家: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仓库的存储库,以我的赛帝配置文件:

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

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

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

我尝试了很多事情就像我的赛帝配置文件设置trunk-pathbranches-pathtags-pathpackage-path,但我能得到这个工作。

总之:我试图让Composer/Satis在1个SVN仓库中使用多个软件包。有谁知道如何做到这一点?或者,也许有更好的方法来解决我的'问题'?

在此先感谢!

回答

0

我不认为SATIS支持这一点 - 我得到全面的方式,它是添加使用rake构建一步,虽然你可以使用phing甚至一个shell脚本,它通过所有的路径循环在我们SVN回购和生成config.json。这确实意味着每次添加svn repo时都必须重新运行buildstep,但是您仍然需要将satis创建作为cronjob/post commit钩子运行。

如果构建脚本是不可能的,你可能要看看越来越packagist设置,这需要您手动添加的包,但犯规生成需要为每个存储库config.json条目。

+0

对不起,迟到的回应,由于其他项目这个问题有一个较低的优先级。感谢您的回答@timmow。我已经看过packagist,我想用它是最好的选择。我会试一试! –