aedart / license-file-manager
一个简单的LICENSE文件管理器,用于您的composer包。允许您将各种许可证存储/组织到单个包中,获取它,并使用所需的许可证更新当前项目的许可证文件。在核心上,这个包只不过是一个“美化”的PHP copy函数的包装,但它使在开发多个包时管理许可证文件变得更容易。
Requires
- php: >=7.1.0
- symfony/console: ~4.0
Requires (Dev)
- aedart/license: 1.*
- aedart/testing: ~1.0
README
废弃 - 许可文件管理器
一个简单的LICENSE文件管理器,用于您的composer包。允许您将各种许可证存储/组织到单个包中,获取它,并使用所需的许可证更新当前项目的许可证文件。在核心上,这个包只不过是一个"美化"的PHP copy函数的包装,但它使在开发多个包时管理许可证文件变得更容易。
内容
何时使用此工具
你正在处理多少个基于composer的包?其中是否有包含名为LICENSE的小文件?你是如何管理这个文件在所有包中的?
如果你希望从一个单一的仓库(或包)中维护你的许可证文件,并且只想获取最新的发布版本文件,那么这个小型包可能能够帮助你。
如何安装
composer require aedart/license-file-manager 1.*
此包使用composer。如果你不知道它是做什么的或者它是如何工作的,我建议你在尝试使用此包之前先了解一些相关信息。
快速开始
先决条件
你应该知道如何使用git-scm
你应该对如何创建、发布和使用基于composer的项目有一些了解
步骤1:创建一个包含composer文件的仓库
创建一个新的仓库,该仓库必须包含你的各种许可证文件。
记得为该包创建一个composer文件,并使用自定义名称,例如Acme/License
如果你需要组织文件灵感的例子,请查看Aedart/License的文件夹结构
步骤2:创建你的许可证文件
在你的新仓库中,创建一个许可证文件。
提示:如果你知道你将处理多种类型的许可证,那么你可能应该根据类型命名每个许可证文件,例如Apache-2-license
步骤 3:发布您的许可证仓库/软件包
一旦您的许可证文件准备好用于您的一个项目中,您就可以发布仓库。
但是请注意,Composer 也允许直接从仓库加载,如果您不想在 Packagist 上发布它。有关更多信息,请参阅 Composer 文档中的 仓库 部分。
步骤 4:要求您的许可证软件包和许可证管理器依赖项
在 require 或 require-dev 中声明您的许可证软件包依赖项以及此管理器的依赖项;
{ "require-dev": { "acme/license": "1.*", "aedart/license-file-manager": "1.*" } }
运行 composer update…
提示:除非有充分的理由使您的整个许可证软件包最终放在 vendor 文件夹中,供使用它的那些人使用,否则您只需将其用于开发 – 在 composer 文件中的 'require-dev' 部分指定您的依赖项。
步骤 5:复制所需的许可证文件
运行以下命令,您的许可证文件将从您的软件包复制到当前项目的根目录;
php vendor/bin/license-manager license:copy vendor/acme/license/Apache-2-license
应在项目根目录中添加一个 LICENSE
文件。
注意:如果您的项目根目录中已经存在名为 LICENSE 的文件,只有在其 SHA1 校验和与 vendor 文件夹中的许可证文件不同时,它才会被覆盖。
替代方案:composer post-update-cmd 脚本
如果您希望让 Composer 为您完成工作,每次您在项目中工作,您都可以在 composer 文件中指定一个 post update 脚本;
{ "scripts": { "post-update-cmd": "vendor/bin/license-manager license:copy vendor/acme/license/Apache-2-license" } }
请注意,此脚本仅在您在处理软件包时才会被触发;因此,当它在根级别的 composer 文件中声明时。为了更好地理解它是如何工作的,请阅读有关 Composer 的 脚本 的更多信息。
继续
此软件包为您提供了一种将各种许可证文件组织到单个仓库中的方法,并获取所需的那个。然而,不利之处在于,只有当您在与软件包一起工作时,许可证文件才会更新。尽管如此,这仍然可能是管理许可证文件的一种更好的方式,而不是在多个软件包中手动复制、粘贴和维护它们。
许可证
BSD-3-Clause,阅读此软件包中包含的 LICENSE 文件