构建包
使用 GitLab 包注册表来安装和构建不同格式的包。
支持以下包管理器:
Composer
-
创建一个名为
my-composer-package的目录并切换到该目录:mkdir my-composer-package && cd my-composer-package -
运行
composer init并回答提示。对于命名空间,输入您唯一的 namespace,例如您的 GitLab 用户名或组名。
会创建一个名为
composer.json的文件:{ "name": "<namespace>/composer-test", "description": "Library XY", "type": "library", "license": "GPL-3.0-only", "authors": [ { "name": "John Doe", "email": "john@example.com" } ], "require": {} }
Conan 1
安装 Conan 1
先决条件:
- 您必须安装 Conan 版本 1.x。
通过 conan.io 上的说明,将 Conan 包管理器下载到您的本地开发环境。
安装完成后,通过运行以下命令验证您可以在终端中使用 Conan:
conan --version输出中会打印 Conan 版本:
Conan version 1.20.5安装 CMake
当您使用 C++ 和 Conan 开发时,可以从许多可用的编译器中选择。本示例使用 CMake 构建系统生成器。
安装 CMake:
安装完成后,通过运行以下命令验证您可以在终端中使用 CMake:
cmake --version输出中会打印 CMake 版本。
创建项目
要测试包注册表,您需要一个 C++ 项目。如果您还没有,可以克隆 Conan 的 hello world 入门项目。
构建 Conan 1 包
要构建包:
-
打开终端并转到项目的根文件夹。
-
运行
conan new并指定包名称和版本来生成新配方:conan new Hello/0.1 -t -
运行
conan create并指定 Conan 用户和频道来创建配方包:conan create . mycompany/beta
会创建一个配方为 Hello/0.1@mycompany/beta 的包。
有关创建和管理 Conan 包的更多详细信息,请参阅 Conan 文档。
Conan 2
安装 Conan 2
先决条件:
- 您必须安装 Conan 版本 2.x。基础 Conan 版本 2 已可用,未来改进可以在 epic 8258 中跟踪。
通过 conan.io 上的说明,将 Conan 包管理器安装到您的本地开发环境。
完成安装后,运行以下命令验证您可以在终端中使用 Conan:
conan --version输出中会打印 Conan 版本:
Conan version 2.17.0创建 Conan 2 配置文件
您必须为 Conan 2 定义配置文件。如果您已经定义了配置文件,请跳过此步骤。
要创建配置文件,运行以下命令:
conan profile detect检查配置文件:
conan profile list命令会在输出中列出配置文件:
Profiles found in the cache:
default生成的配置文件通常足以开始使用。有关 Conan 配置文件的更多信息,请参阅 Conan 2 配置文件。
安装 CMake
当您使用 C++ 和 Conan 开发时,可以从许多可用的编译器中选择。以下示例使用 CMake 构建系统生成器。
先决条件:
安装完成后,通过运行以下命令验证您可以在终端中使用 CMake:
cmake --version输出中会打印 CMake 版本。
创建项目
先决条件:
- 要测试包注册表,您必须有一个 C++ 项目。
转到您的本地项目文件夹,并使用 conan new 命令创建一个使用 cmake_lib 模板的 "Hello World" C++ 库示例项目:
mkdir hello && cd hello
conan new cmake_lib -d name=hello -d version=0.1有关更高级的示例,请参阅 Conan 2 示例项目。
构建 Conan 2 包
先决条件:
要构建包:
-
确保您在上一步中创建的
hello文件夹中。 -
运行
conan create并指定 Conan 用户和频道来创建配方包:conan create . --channel=beta --user=mycompany
会创建一个配方为 hello/0.1@mycompany/beta 的包。
有关创建和管理 Conan 包的更多详细信息,请参阅 创建包。
Maven
安装 Maven
所需的最低版本是:
- Java 11.0.5+
- Maven 3.6+
遵循 maven.apache.org 上的说明,为您的本地开发环境下载并安装 Maven。安装完成后,通过运行以下命令验证您可以在终端中使用 Maven:
mvn --version输出应类似于:
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T20:00:29+01:00)
Maven home: /Users/<your_user>/apache-maven-3.6.1
Java version: 12.0.2, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-12.0.2.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.2", arch: "x86_64", family: "mac"构建 Maven 包
-
打开您的终端并创建一个目录来存储项目。
-
从新目录中,运行以下 Maven 命令来初始化新包:
mvn archetype:generate -DgroupId=com.mycompany.mydepartment -DartifactId=my-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false参数说明:
DgroupId: 唯一标识您的包的字符串。遵循 Maven 命名约定。DartifactId:JAR的名称,附加在DgroupId的末尾。DarchetypeArtifactId: 用于创建项目初始结构的原型。DinteractiveMode: 使用批处理模式创建项目(可选)。
此消息表示项目设置成功:
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.429 s
[INFO] Finished at: 2020-01-28T11:47:04Z
[INFO] ------------------------------------------------------------------------在您运行命令的文件夹中,应该会显示一个新目录。目录名称应与 DartifactId 参数匹配,在本例中是 my-project。
Gradle
安装 Gradle
如果您想创建新的 Gradle 项目,必须安装 Gradle。遵循 gradle.org 上的说明,为您的本地开发环境下载并安装 Gradle。
在您的终端中,通过运行以下命令验证您可以使用 Gradle:
gradle -version要使用现有的 Gradle 项目,在项目目录中,在 Linux 上执行 gradlew,或在 Windows 上执行 gradlew.bat。
输出应类似于:
------------------------------------------------------------
Gradle 6.0.1
------------------------------------------------------------
Build time: 2019-11-18 20:25:01 UTC
Revision: fad121066a68c4701acd362daf4287a7c309a0f5
Kotlin: 1.3.50
Groovy: 2.5.8
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 11.0.5 (Oracle Corporation 11.0.5+10)
OS: Windows 10 10.0 amd64创建包
-
打开您的终端并创建一个目录来存储项目。
-
从这个新目录中,运行以下命令来初始化新包:
gradle init输出应为:
Select type of project to generate: 1: basic 2: application 3: library 4: Gradle plugin Enter selection (default: basic) [1..4] -
输入
3创建新的库项目。输出应为:Select implementation language: 1: C++ 2: Groovy 3: Java 4: Kotlin 5: Scala 6: Swift -
输入
3创建新的 Java 库项目。输出应为:Select build script DSL: 1: Groovy 2: Kotlin Enter selection (default: Groovy) [1..2] -
输入
1创建用 Groovy DSL 描述的新 Java 库项目,或输入2创建用 Kotlin DSL 描述的项目。输出应为:Select test framework: 1: JUnit 4 2: TestNG 3: Spock 4: JUnit Jupiter -
输入
1使用 JUnit 4 测试库初始化项目。输出应为:Project name (default: test): -
输入项目名称或按 Enter 使用目录名作为项目名称。
sbt
安装 sbt
安装 sbt 以创建新的 sbt 项目。
为您的开发环境安装 sbt:
-
遵循 scala-sbt.org 上的说明。
-
从您的终端,验证您可以使用 sbt:
sbt --version
输出类似于:
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
sbt script version: 1.9.8创建 Scala 项目
-
打开您的终端并创建一个目录来存储项目。
-
从新目录中,初始化新项目:
sbt new scala/scala-seed.g8输出为:
Minimum Scala build. name [My Something Project]: hello Template applied in ./hello -
输入项目名称或按 Enter 使用目录名作为项目名称。
-
打开
build.sbt文件并根据 sbt 文档 编辑它,以将您的项目发布到包注册表。
npm
安装 npm
遵循 npmjs.com 上的说明,在您的本地开发环境中安装 Node.js 和 npm。
安装完成后,通过运行以下命令验证您可以在终端中使用 npm:
npm --version输出中会显示 npm 版本:
6.10.3创建 npm 包
-
创建一个空目录。
-
进入目录并通过运行以下命令初始化空包:
npm init -
回答问题。确保 包名称 遵循 命名约定 并限定到注册表所在的项目或组。
Yarn
安装 Yarn
作为 npm 的替代方案,您可以通过遵循 classic.yarnpkg.com 上的说明,在您的本地环境中安装 Yarn。
安装完成后,通过运行以下命令验证您可以在终端中使用 Yarn:
yarn --version输出中会显示 Yarn 版本:
1.19.1创建包
-
创建一个空目录。
-
进入目录并通过运行以下命令初始化空包:
yarn init -
回答问题。确保 包名称 遵循 命名约定 并限定到注册表所在的项目或组。
会创建一个 package.json 文件。
NuGet
安装 NuGet
遵循 Microsoft 的说明安装 NuGet。如果您有 Visual Studio),NuGet 可能已经安装。
通过运行以下命令验证 NuGet CLI 是否已安装:
nuget help输出应类似于:
NuGet Version: 5.1.0.6013
usage: NuGet <command> [args] [options]
Type 'NuGet help <command>' for help on a specific command.
Available commands:
[output truncated]PyPI
安装 pip 和 twine
创建项目
创建一个测试项目。
-
打开您的终端。
-
创建一个名为
MyPyPiPackage的目录,然后进入该目录:mkdir MyPyPiPackage && cd MyPyPiPackage -
创建另一个目录并进入它:
mkdir mypypipackage && cd mypypipackage -
在此目录中创建所需的文件:
touch __init__.py touch greet.py -
打开
greet.py文件,然后添加:def SayHello(): print("Hello from MyPyPiPackage") return -
打开
__init__.py文件,然后添加:from .greet import SayHello -
在您的
MyPyPiPackage目录中,启动 Python 提示符。python -
运行以下命令:
>>> from mypypipackage import SayHello >>> SayHello()
一条消息表示项目设置成功:
Python 3.8.2 (v3.8.2:7b3ab5921f, Feb 24 2020, 17:52:18)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from mypypipackage import SayHello
>>> SayHello()
Hello from MyPyPiPackage创建 PyPI 包
创建项目后,您可以创建包。
-
在您的终端中,转到
MyPyPiPackage目录。 -
创建一个
pyproject.toml文件:touch pyproject.toml此文件包含有关包的所有信息。有关此文件的更多信息,请参阅 创建
pyproject.toml。 由于 GitLab 基于 Python 标准化名称 (PEP-503) 来识别包,请确保您的包名称符合这些要求。详细信息请参阅 安装部分。 -
打开
pyproject.toml文件,然后添加基本信息:[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "mypypipackage" version = "0.0.1" authors = [ { name="Example Author", email="author@example.com" }, ] description = "A small example package" requires-python = ">=3.7" classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] [tool.setuptools.packages] find = {} -
保存文件。
-
安装包构建库:
pip install build -
构建包:
python -m build
输出应显示在新创建的 dist 文件夹中:
ls dist输出应类似于以下内容:
mypypipackage-0.0.1-py3-none-any.whl mypypipackage-0.0.1.tar.gz包现在已准备好发布到包注册表。