当前位置: 首页 > 知识库问答 >
问题:

需要具有其他依赖项应使用的composer的fork

方焱
2023-03-14

我有一个Laravel项目,我想使用我自己的fork(它合并了几个pull请求)。下面的作曲家。json按预期工作(它从我的repo获取主分支):

{
    "repositories": [
        {
            "type": "vcs",
            "url": "http://github.com/rmasters/framework"
        }
    ],
    "require": {
        "php": "5.4.*",
        "laravel/framework": "dev-master"
    },
    ...
    "minimum-stability": "dev"
}

但是,当我添加一个依赖于Laravel提供的照明组件的软件包时(例如,zizaco/Trust,它需要与我的fork提供的版本相同),我最终会得到如下结果:

>

  • 安装gexge/laravel框架(4.0.x-dev 87556b2)
  • 阅读/Composer/cache/files/gexge/framework/87556b。。。。。c382。从缓存中压缩
  • 从缓存加载
  • 提取归档文件

    原因:zizaco/dev master需要illuminate/support 4.0。x-

    • laravel/framework[v4.0.5、v4.0.4、v4.0.3、v4.0.2、v4.0.1、v4.0.0-BETA4、v4.0.0-BETA3、v4.0.0-BETA2、v4.0.0、4.0.x-dev],

    最终,我的fork和这个fork都被安装了,gexge fork在autoloader中处于优先地位。

    有没有一种方法可以让依赖项拿起我的叉子,而不是试图找到另一个?我的fork具有相同的包名(composer.json没有被更改),所以我认为这是可行的。

    或者,是否可以阻止某些软件包被选中?(我还没有找到任何文档。)令人恼火的是,这两个分叉似乎都没有太多理由首先出现在Packagist上,但我想作曲家应该能够解决这个问题。

  • 共有1个答案

    齐永昌
    2023-03-14

    您的分叉有一个主分支别名设置为4.1. x-dev,所以它不符合4.0.*要求。

    解决方案是通过如下方式对包进行别名

    {
        "repositories": [
            {
                "type": "vcs",
                "url": "http://github.com/rmasters/framework"
            }
        ],
        "require": {
            "php": "5.4.*",
            "laravel/framework": "dev-master as 4.0.0"
        },
        ...
        "minimum-stability": "dev"
    }
    

    事实上,这些叉子不应该在Packagist上,我会联系车主的。

     类似资料:
    • 问题内容: 我有一个Eclipse插件项目,它取决于我在Eclipse工作区中拥有的其他项目。在“ Java Build Path”->“ Projects”选项卡下添加项目依赖项,并在“ Order and Export”中选择项目后,我得到了java.lang.NoClassDefFoundError。 我假设其他项目未正确包含在插件中。有谁知道如何解决这一问题? 谢谢,詹姆斯 问题答案: E

    • 在pom.xml文件中添加org.hibernate依赖项时出现问题 导致的错误列表和错误消息 [错误]2018-07-10 15:48:45.908[main]org.springframework.boot.springapplication.reportfailure(springapplication.java:842)-应用程序运行失败org.springframework.beans.

    • 问题内容: 首先,我要说我是Ant的新手。就像之前一样,我只是在两天前才开始学习它以完成此任务。 我想要做的是创建一个“ master”蚂蚁脚本,该脚本调用其他几个蚂蚁脚本。例如: 现在,我拥有用于​​A,B和C的所有单独版本。通过这个,我的意思是我可以从这些文件夹中的任何一个运行“ ant”,它将构建项目并生成一个jar文件。如果以这种方式构建A,B和C,则我有3个jar文件。然后,我可以将它们

    • 问题内容: 我有一个简单的Java 9 SE项目,该项目仅依赖于一个非模块化项目(在本示例中选择Weld SE),并且尝试使用Maven()构建它。为了添加Java 9,我添加了。最初,此文件仅包含模块名称,没有公式。 请记住,我唯一的依赖是不是一个模块化的项目,因此,我认为Maven会放在类路径中(不模块路径),因此它会在结束中描述的模块化系统的状态。 现在,我的Maven版本是3.3.9,并且

    • 基本上我有一个问题-我们有一个基于PHP 5.4构建的Symfony网站,但我们的服务器运行PHP 5.3(是的-它很旧,有超过200个网站,所以我不想升级,以防它破坏旧网站!) 我们知道问题在于条令(速记数组语法)——可以手动更新文件并使用较旧的数组语法。 但我应该可以通过Composer来完成,但我不确定该使用哪个命令。 我知道可能会很简单。我想我应该先问一下,因为如果备份出错,我可能会节省恢

    • 我正试图使用Gradle从Maven Central下载我最新发布的依赖项: 当尝试构建时,我得到一个错误: 但是io。github。iltotore:core:1.0-fixed不在lib的pom中,我的朋友可以毫无错误地使用它。 为了解决这个问题,我尝试了: > 删除~/. gradle/中的缓存 使用Intellij IDEA使缓存无效 删除我的maven local 但这个问题仍然存在。