Skip to content

kobayashirei/go-cross-platform-code-build

Repository files navigation

CP Code Build Tool

🚀 专为 Go 开发者设计的跨平台代码构建工具

Go Version License Platform

📖 项目简介

CP Code Build Tool 是一个强大的跨平台命令行工具,专门为 Go 开发者设计。它能够帮助你:

  • 🎯 一键编译 - 将 Go 代码编译成多个平台的可执行文件
  • 📦 智能打包 - 自动生成 ZIP 和 TAR.GZ 格式的发布包
  • 🔧 配置驱动 - 通过 YAML 配置文件灵活管理构建参数
  • 🌍 跨平台支持 - 支持 Windows、macOS、Linux 三大主流操作系统
  • 并行构建 - 支持并行编译,大幅提升构建速度
  • 🛠️ 环境管理 - 自动检测和管理 Go 环境变量

✨ 主要特性

🚀 跨平台编译

  • 支持 6 个主流平台:Windows (amd64/arm64)、macOS (amd64/arm64)、Linux (amd64/arm64)
  • 自动处理平台特定的编译参数
  • 支持条件编译和构建标签

📦 智能打包

  • 支持 ZIP 和 TAR.GZ 格式
  • 可配置包含/排除文件规则
  • 自定义打包文件命名模板
  • 自动包含 README、LICENSE 等文档

⚙️ 配置管理

  • YAML 格式配置文件,易于理解和修改
  • 支持环境变量和模板变量
  • 配置验证和错误提示
  • 命令行配置管理工具

🔧 高级功能

  • 并行编译支持
  • 构建钩子(pre/post 构建脚本)
  • 环境变量管理
  • 详细的构建日志和进度显示

🛠️ 快速开始

环境要求

  • Go 1.21 或更高版本
  • Windows、macOS 或 Linux 操作系统

安装

  1. 下载工具

    # 下载 cp-code-build.exe 到你的项目目录
  2. 验证安装

    ./cp-code-build.exe --help

使用示例

1. 创建新项目

# 创建项目目录
mkdir my-go-app
cd my-go-app

# 初始化 Go 模块
go mod init my-go-app

# 创建主程序
echo 'package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}' > main.go

# 初始化构建配置
./cp-code-build.exe init my-go-app

2. 一键构建

# 构建所有平台版本
./cp-code-build.exe build --verbose

3. 查看结果

# 查看生成的文件
ls -la dist/ packages/

📋 命令参考

主要命令

命令 描述 示例
init 初始化项目配置 ./cp-code-build.exe init my-app
build 一键构建(编译+打包) ./cp-code-build.exe build --verbose
compile 仅编译 ./cp-code-build.exe compile --target linux/amd64
pack 仅打包 ./cp-code-build.exe pack --format zip
config 配置管理 ./cp-code-build.exe config show
env 环境管理 ./cp-code-build.exe env show
version 显示版本 ./cp-code-build.exe version

常用选项

选项 描述 示例
--verbose 详细输出 ./cp-code-build.exe build --verbose
--target 指定目标平台 --target linux/amd64
--format 指定打包格式 --format zip
--clean 构建前清理 --clean
--parallel 并行构建 --parallel=true

⚙️ 配置文件

工具使用 config.yaml 配置文件管理所有构建参数:

# 项目配置
project:
  name: "my-app"
  version: "1.0.0"
  description: "我的 Go 应用"

# 构建配置
build:
  output_dir: "./dist"
  targets:
    - "linux/amd64"
    - "windows/amd64"
    - "darwin/amd64"
  ldflags: "-s -w"

# 打包配置
pack:
  output_dir: "./packages"
  formats:
    - "zip"
    - "tar.gz"
  include:
    - "README.md"
    - "LICENSE"

📚 详细文档

🎯 使用场景

个人开发者

  • 快速构建个人项目
  • 为不同平台生成可执行文件
  • 自动化发布流程

团队项目

  • 统一的构建配置
  • 自动化 CI/CD 集成
  • 标准化的发布流程

开源项目

  • 多平台支持
  • 自动化发布
  • 简化贡献者构建流程

🔧 高级用法

自定义构建钩子

hooks:
  pre_build:
    - "go fmt ./..."
    - "go vet ./..."
    - "go test ./..."
  
  post_build:
    - "echo '构建完成!'"

条件编译

// +build linux

package main

func init() {
    // Linux 特定代码
}

环境变量支持

project:
  version: "${VERSION:-1.0.0}"
  author: "${AUTHOR:-Unknown}"

🤝 贡献指南

欢迎贡献代码和提出建议!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

感谢所有为这个项目做出贡献的开发者!


开始使用 CP Code Build Tool,让 Go 项目构建变得简单高效! 🚀

About

GO语言跨平台代码打包工具

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages