8000 GitHub - teletha/bee: Bee is an open source build automation tool that focuses on conventions, type safety and performance. Project and build task definitions are written in Java, ensuring flexible extensibility for programmers.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ bee Public

Bee is an open source build automation tool that focuses on conventions, type safety and performance. Project and build task definitions are written in Java, ensuring flexible extensibility for programmers.

License

Notifications You must be signed in to change notification settings

teletha/bee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

   

Summary

Bee is a modern, open-source build automation tool focused on conventions, type safety, and performance.

Tired of complex configurations and slow build times? Bee leverages the power and familiarity of Java to define projects and build tasks, offering a flexible and highly extensible experience for developers.

✨ Features

☕ Java-Defined Project

Write your build logic directly in Java. Enjoy type safety, easy refactoring, powerful IDE support (completion, navigation), and seamless integration with your existing Java codebase. Forget complex DSLs or XML – stick with the language you know best.

🧩 Flexible Task System

Easily add custom tasks or modify existing ones. Simply create/implement a Java interface extending bee.Task in your project and define/override command methods. Bee automatically discovers and prioritizes your project-specific tasks without complex configuration files.

✅ Convention over Configuration

Sensible defaults minimize the need for boilerplate configuration. Focus on your code, not the build tool setup. All settings are type-safe with IDE completion, eliminating guesswork and trips to the documentation for minor details.

🚀 Fast Execution

Achieve significantly faster build times. Bee executes tasks in parallel whenever possible and utilizes intelligent caching to reuse outputs from previous runs, avoiding redundant work. Only build what's necessary, when it's necessary.

🔗 Integrated Lifecycle

Bee understands source code and package repositories (like Maven/Gradle repositories). It automates the entire development lifecycle, from compiling and testing locally to packaging, publishing, and releasing your artifacts with straightforward commands.

📦 Installation

Get started with Bee quickly using our installation scripts. Open your terminal and run the appropriate command:

Linux / macOS

curl -Ls https://git.io/install-bee | bash

Windows (Command Prompt or PowerShell)

curl -Ls https://git.io/install-bee -o install.bat && install

After installation is complete, verify that the tool was installed successfully by running:

bee -v

This should display the installed Bee version.

🚀 Available Tasks

Here is a list of the built-in tasks available in Bee. You can get more detailed help for each task, including its specific commands and configuration options, by running bee [TaskName]:help (e.g., bee compile:help).

BUN

Installs and manages the Bun runtime.

Command Description Default
dev Launch development server.
install Install bun.

CI

Sets up Continuous Integration configurations.

Command Description Default
github Generate CI/CD configuration files for GitHub.
gitignore Generate .gitignore file.
jitpack Generate CI/CD configuration files for JitPack.
license Generate license file.
readme Generate readme file.
setup Setup general CI/CD configurations.

CLEAN

Cleans build output files.

Command Description Default
all Clean output directory.

COMPILE

Compiles source code.

Command Description Default
check Validate main and test sources for compilation errors.
project Compile project definition sources and resources.
source Compile main sources and resources.
test Compile test sources and resources.

Configuration

Option Description Type Default
useECJ Force use of the Eclipse Compiler for Java (ECJ). boolean false

DEPENDENCY

Manages project dependencies.

Command Description Default
module Analyze and display required Java modules using jdeps.
tree Display the project dependency tree.

DOC

Generates project documentation.

Command Description Default
javadoc Generate project Javadoc.
site Generate project site (including docs).

ECLIPSE

Manages Eclipse IDE project files.

Command Description Default
create Generate configuration files for Eclipse.
delete Delete configuration files for Eclipse.
live Rewrite sibling Eclipse projects to use the current project directly.
repository Rewrite sibling Eclipse projects to use the current project in repository.

EXE

Creates a Windows executable launcher.

Command Description Default
build Generate windows exe file which executes the main class.

Configuration

Option Description Type Default
icon Location for the .exe file icon. Path (none)
customJRE Embed a custom JRE. boolean true
resources Additional files/dirs to package. Set<Location> []

FIND-MAIN

Finds main and agent entry point classes.

Command Description Default
agentmain Find agentmain class for Java Agent (attach API).
main Find main class for the project.
premain Find premain class for Java Agent (startup).

Configuration

Option Description Type Default
main Specify the main class FQCN. String (auto-detected)
premain Specify the premain class FQCN. String (none)
agentmain Specify the agentmain class FQCN. String (none)

HELP

Displays help information about Bee.

Command Description Default
option Display all available command-line options.
task Display all available tasks (this list).
version Display version information for Bee, Java, and OS.
welcome Display the Bee welcome message.

IDE

Manages general IDE project files.

Command Description Default
create Generate configuration files.
delete Delete configuration files.

INSTALL

Installs project artifacts into the local repository.

Command Description Default
jar Install JAR file only into the local repository.
project Install project into the local repository.

INTELLIJ

Manages IntelliJ IDEA project files.

Command Description Default
create Generate configuration files for IntelliJ IDEA.
delete Delete configuration files for IntelliJ IDEA.

JAR

Packages project artifacts into JAR files.

Command Description Default
document Package generated Javadoc into a JAR file.
merge Create an executable JAR with all dependencies included (uber-jar).
project Package project definition classes and resources into a JAR file.
source Package main classes and resources into a JAR file.
test Package test classes and resources into a JAR file.

Configuration

Option Description Type Default
removeDebugInfo Remove debug info (vars, params). boolean false
removeTraceInfo Remove trace info (source, lines). boolean false
packing Configure resource handling in the main JAR. Function (identity)
merging Configure resource handling when merging deps. Function (identity)

LICENSE

Manages license headers in source files.

Command Description Default
update Write license header comment.

Configuration

Option Description Type Default
exclude Specify files to exclude from updates. Predicate<File> (none)

MAVEN

Provides Maven integration.

Command Description Default
pom Generate pom file.

NATIVE

Builds native executables using GraalVM Native Image.

Command Description Default
build Build native execution file.
run Run the native executable.

Configuration

Option Description Type Default
protocols Network protocols to include. List<String> [http, https]
resources Resource file patterns to include. List<String> [...]
params Additional parameters for Native Image builder. List<String> []

PROTOTYPE

Generates project skeletons.

Command Description Default
java Generate standard Java project skeleton.

TEST

Compiles and runs project tests.

Command Description Default
test Test product codes.

Configuration

Option Description Type Default
longRun Threshold (ms) to report long-running tests. int 1000
java Specify the JVM used for test execution. Directory (system default)
params Additional JVM parameters for test execution. List<String> []

WRAPPER

Manages the Bee wrapper installation for the project.

Command Description Default
clean Clean local bee environment installed by the wrapper.
latest Set up wrapper to use the latest Bee release.
local Set up wrapper to use a locally installed Bee version.
select Set up wrapper using a user-selected Bee version.
stable Set up wrapper to use the latest stable Bee release.
use Set up wrapper to use a specific Bee version.

Configuration

Option Description Type Default
version Specify the Bee version for the wrapper. String (latest stable)

back to top

Prerequisites

Bee runs on all major operating systems and requires only Java version 24 or later to run. To check, please run java -version on your terminal.

back to top

Install

For any code snippet below, please substitute the version given with the version of Bee you wish to use.

Add JitPack repository at the end of repositories element in your build.xml:

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>

Add it into in the dependencies element like so:

<dependency>
    <groupId>com.github.teletha</groupId>
    <artifactId>bee</artifactId>
    <version>0.77.1</version>
</dependency>

Add JitPack repository at the end of repositories in your build.gradle:

repositories {
    maven { url "https://jitpack.io" }
}

Add it into the dependencies section like so:

dependencies {
    implementation 'com.github.teletha:bee:0.77.1'
}

Add JitPack repository at the end of resolvers in your build.sbt:

resolvers += "jitpack" at "https://jitpack.io"

Add it into the libraryDependencies section like so:

libraryDependencies += "com.github.teletha" % "bee" % "0.77.1"

Add JitPack repository at the end of repositories in your project().clj:

:repositories [["jitpack" "https://jitpack.io"]]

Add it into the dependencies section like so:

:dependencies [[com.github.teletha/bee "0.77.1"]]

Add it into your project definition class like so:

require("com.github.teletha", "bee", "0.77.1");

back to top

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

The overwhelming majority of changes to this project don't add new features at all. Optimizations, tests, documentation, refactorings -- these are all part of making this product meet the highest standards of code quality and usability. Contributing improvements in these areas is much easier, and much less of a hassle, than contributing code for new features.

Bug Reports

If you come across a bug, please file a bug report. Warning us of a bug is possibly the most valuable contribution you can make to Bee. If you encounter a bug that hasn't already been filed, please file a report with an SSCCE demonstrating the bug. If you think something might be a bug, but you're not sure, ask on StackOverflow or on bee-discuss.

back to top

Dependency

Bee depends on the following products on runtime.

back to top

License

Copyright (C) 2025 The BEE Development Team

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

back to top

About

Bee is an open source build automation tool that focuses on conventions, type safety and performance. Project and build task definitions are written in Java, ensuring flexible extensibility for programmers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0