gpt4 book ai didi

php - 从 GitLab 安装自定义 Composer 包

转载 作者:可可西里 更新时间:2023-10-31 23:46:03 25 4
gpt4 key购买 nike

我创建了一个简单的测试 wordpress 插件。该插件由一个 php 文件 (kreplach.php) 和一个 composer.json 组成:

kreplach.php

<?php
/*
Plugin Name: kreplach
Plugin URI: http://gitlab.example.com/sales/kreplach
Description: just a test
Author: Foo Bartok
Version: 1.0
Author URI: http://example.com
*/
?>

Composer .json

{
"license": "MIT",
"name": "sales/kreplach",
"type": "wordpress-plugin",
"description": "just a test",
"authors": [
{
"name": "Foo Bartok",
"email": "foo@example.com",
"homepage": "example.com"
}
],
"require": {
"composer/installers": "*"
}
}

在我的开发服务器上,我有以下 composer.json

服务器的 composer.json

{
"repositories": [
{
"type": "composer",
"url": "https://wpackagist.org"
},
{
"type": "vcs",
"url": "git@gitlab.example.com:sales/kreplach.git"
}
],
"require": {
"php": ">=5.4",
"wpackagist-plugin/akismet": "*",
"wpackagist-plugin/contact-form-7": "*",
"wpackagist-plugin/wordpress-importer": "*",
"sales/kreplach": "master",
"johnpbloch/wordpress": "4.*",
"composer/installers": "*"
},
"extra": {
"wordpress-install-dir": "wp"
}
}

我认为应该发生的事情:

  1. Composer 在 git 仓库中查找 composer.json
  2. Composer 匹配在构建主机的 composer.json 中找到的名称“sales/kreplach”
  3. Composer 将 master 分支的内容复制到我的构建主机上的 wp-content/plugins/kreplach 中。
  4. 我的假插件按照设计没有任何作用。

实际发生了什么:

苦涩的失败。

Loading composer repositories with package information Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package sales/kreplach could not be found in any version, there may be a typo in the package name.

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

我已经测试过将 sales/kreplach 存储库克隆到我尝试安装插件的同一主机上。

为了确保 composer 实际上是从 git repo 读取 composer.json 文件,我引入了一个拼写错误(是的,完全是故意的,比如)抛出一个“嘿,这个 json 文件坏了,Foam Head”错误.

我的gitlab版本是omnibus edition 8.6.4(今天安装)。

我已经成功地使用 pip/requirements.txt 完成了同样的技巧来安装自定义 python 模块,所以我并非不习惯遵循以下说明。我是否遗漏了一个步骤,或者某种非显而易见的(至少对我而言)命名法?

最佳答案

2021 年更新,5 年后,自 GitLab 13.3 (Aug. 2020) , GitLab(即使是免费版)也有一个 Package Registry , 将 GitLab 建立为私有(private)存储库。

您可以在其中发布Composer packages , 和 GitLab 13.11 (2021 年 4 月):

Use Composer v2 with the GitLab Package Registry

You use Composer to publish, share, and download your PHP dependencies to your GitLab Project. Six months ago, a new major version (v2) of Composer was launched with a variety of changes, including significant performance improvements, architectural updates, and runtime features.
You can read more about the changes here.

Until recently, you couldn’t take advantage of these improvements because the GitLab registry didn’t support Composer v2.
This prevented some of you from using the GitLab registry at all.

As an MVC, we focused on adding support for the mandatory parameter metadata-URL. We added a new endpoint GET group/:id/-/packages/composer/p2/:package_name, which returns the metadata for all packages in your repository.
When Composer looks for a package, it replaces %package% with the package name and fetches that URL.

This means we’ve added a new endpoint GET group/:id/-/packages/composer/p2/:package_name which will return the metadata for all packages in your repository.

Please note that there are two parameters considered optional.
We have issues open to add support for the providers-api and list-api parameters. We hope to prioritize them in an upcoming milestone.

See Documentation and Issue.

并且(仍然是 GitLab 13.11,2021 年 4 月):

Download Composer dependencies from version control

You have two options when downloading Composer dependencies: source or dist. For stable versions, Composer uses dist by default and downloads the dependency as a zip file.

However, you can also download it directly from version control.
If --prefer-source is enabled, Composer downloads your dependency as a Git clone instead of as a packaged zip file.

This is useful if you want to make a bug fix for a project and get a local Git clone of the dependency directly.

Until recently, you could not use the prefer-source and related preferred-install commands and configurations when downloading Composer dependencies.
This prevented many of you from using the GitLab Package Registry for your Composer dependencies.

We are happy to announce that you can now download your Composer dependencies from source.
Do so by simply adding the prefer-source option to your install command like this: composer update --prefer-source.

See Documentation and Issue.

关于php - 从 GitLab 安装自定义 Composer 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36436115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com