{"id":24502449,"url":"https://github.com/rife2/bld","last_synced_at":"2026-01-11T17:34:29.535Z","repository":{"id":163565149,"uuid":"638725478","full_name":"rife2/bld","owner":"rife2","description":"Pure java build tool for developers who don't like dealing with build tools","archived":false,"fork":false,"pushed_at":"2025-12-30T20:45:43.000Z","size":1560,"stargazers_count":295,"open_issues_count":9,"forks_count":16,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-03T18:58:54.091Z","etag":null,"topics":["bld","build","build-system","build-tool","buildtool","compile","java","run","test"],"latest_commit_sha":null,"homepage":"https://rife2.com/bld","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rife2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-10T01:18:01.000Z","updated_at":"2025-12-30T20:45:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"732118cd-04c0-48b5-9711-6d3764ea6662","html_url":"https://github.com/rife2/bld","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/rife2/bld","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rife2%2Fbld","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rife2%2Fbld/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rife2%2Fbld/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rife2%2Fbld/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rife2","download_url":"https://codeload.github.com/rife2/bld/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rife2%2Fbld/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28315879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bld","build","build-system","build-tool","buildtool","compile","java","run","test"],"created_at":"2025-01-21T23:01:54.107Z","updated_at":"2026-01-11T17:34:29.530Z","avatar_url":"https://github.com/rife2.png","language":"Java","readme":"[![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)\n[![bld](https://img.shields.io/badge/2.3.0-FA9052?label=bld\u0026labelColor=2392FF)](https://rife2.com/bld)\n[![Release](https://img.shields.io/github/release/rife2/bld.svg)](https://github.com/rife2/bld/releases/latest)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.uwyn.rife2/bld/badge.svg?color=blue)](https://maven-badges.herokuapp.com/maven-central/com.uwyn.rife2/bld)\n[![GitHub Snapshot](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fcentral.sonatype.com%2Frepository%2Fmaven-snapshots%2Fcom%2Fuwyn%2Frife2%2Fbld%2Fmaven-metadata.xml)](https://github.com/rife2/bld/packages/2214741/versions)\n[![gradle-ci](https://github.com/rife2/bld/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld/actions/workflows/bld.yml)\n[![Tests](https://rife2.com/tests-badge/badge/com.uwyn.rife2/bld)](https://github.com/rife2/rife2/actions/workflows/bld.yml)\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/rife2/bld/raw/main/images/bld_logo.png\" width=\"120\"\u003e\u003c/p\u003e\n\n# What is bld?\n\n`bld` is a new build system that allows you to write your build logic in pure\nJava.\n\n`bld` was created because we're not really interested in build tools. We use\nthem because we have to, but we'd rather just get on with coding the real stuff.\n\n`bld` is designed with the following principles in mind:\n\n* tasks don't happen without you telling them to happen\n* no auto-magical behavior, task behavior is explicit and API-defined\n* managing libs yourself is fine, having that automated also, or mix and match\n* build logic is written in Java, with all the advantages of Java\n* standard collection of Java-centric tasks for common operations\n* bld is distributed in a single jar, if you have the jar, you have the build system\n\n# Designed for modern Java\n\nbld relies on Java 17 and leverages many of the features that this version of\nJava provides. Thanks to the modern language constructs, your Java build logic\nends up looking very concise, is easily readable and understood by any IDE.\nYou automatically get support for auto-completion and javadoc documentation,\nand you can split your build logic into multiple files and classes when you\noutgrow a single file.\n\nHere is a complete bld file for a Java application using JUnit 5 for its tests.\nNothing else is needed to be able to run it, test it and distribute it:\n\n```java\npackage com.example;\n\nimport rife.bld.Project;\nimport java.util.List;\nimport static rife.bld.dependencies.Repository.*;\nimport static rife.bld.dependencies.Scope.*;\n\npublic class MyAppBuild extends Project {\n    public MyAppBuild() {\n        pkg = \"com.example\";\n        name = \"my-app\";\n        mainClass = \"com.example.MyApp\";\n        version = version(0,1,0);\n\n        downloadSources = true;\n        repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);\n        scope(test)\n            .include(dependency(\"org.junit.jupiter\", \"junit-jupiter\", version(5,11,4)))\n            .include(dependency(\"org.junit.platform\", \"junit-platform-console-standalone\", version(1,11,4)));\n    }\n\n    public static void main(String[] args) {\n        new MyAppBuild().start(args);\n    }\n}\n```\n\n\u003e **NOTE:** `bld` supports different ways to describe dependencies,\n\u003e `dependency(\"org.junit.jupiter\", \"junit-jupiter\", version(5,11,4))` can for instance also\n\u003e be written as `dependency(\"org.junit.jupiter:junit-jupiter:5.11.4\")`. Which format you use,\n\u003e is a matter of personal taste.\n\n# Where does `bld` fit?\n\nFrom a very high level, build tools can be organized in a matrix:\n* either your tool is declarative or in code\n* either your tool first describes a plan or immediately executes a plan\n\n\n|        | Declarative | Code | Describes | Immediate |\n|--------|-------------|------|-----------|-----------|\n| Maven  | X           |      | X         |           |\n| Gradle |             | X    | X         |           |\n| `bld`  |             | X    |           | X         |\n\nWriting your build logic in the same language as your application (Java),\nsignificantly reduces the cognitive load, and taking actions immediately\nwithout having to mentally construct a described plan, makes it easier to\nreason about your build.\n\n# IDE support\n\n\u003cimg src=\"https://rife2.com/images/bld-idea.png\" style=\"width: 100%\"\u003e\n\nSince version 2.0, bld comes with its own [IntelliJ IDEA plugin](https://github.com/rife2/bld-idea):\n\n* detect `bld` projects and find their main Java class\n* quick access to open and edit the main Java class and wrapper properties of `bld` projects\n* list all the commands in `bld` projects in a side panel\n* execute one or multiple commands in the order they were selected\n* reload the commands in the `bld` project\n* terminate currently running `bld` commands\n* `bld` console panel for command output with source code hyperlinking\n* display the `bld` dependency tree\n* toggle to run `bld` in offline or online mode\n* auto-save all open files before executing a `bld` command\n* convenient `bld` one-click cache invalidation\n* set `bld` commands to run before or after IDEA compilation\n* create custom `bld` command run configuration with options, JVM arguments, and before launch tasks\n* assign keyboard shortcuts to `bld` commands\n\n# Find out more\n\n`bld` lets your build logic get out of the way so that you can focus on writing\napplications.\n\nGet started immediately by [installing](https://github.com/rife2/bld/wiki/Installation) `bld`\nthrough Homebrew, SDKMAN!, JBang, zip archive, or run it directly from its jar file.\n\nIf you merely want to create a new project, `bld` can also be used by executing this one-liner:\n\n```console\nbash -c \"$(curl -fsSL https://rife2.com/bld/create.sh)\"\n```\n\nIf you have any questions, suggestions, ideas or just want to chat, feel free\nto post on the [forums](https://forum.uwyn.com) or to join  us on [Discord](https://discord.gg/zDG6anEXQX).\n\nRead more in the [full documentation](https://github.com/rife2/bld/wiki) and [bld Javadocs](https://rife2.github.io/bld/).\n\n# Contributing\n\nSee [CONTIBUTING.md](https://github.com/rife2/bld?tab=contributing-ov-file#readme) for information about\ncontributing to this project.\n","funding_links":[],"categories":["Java","构建工具"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frife2%2Fbld","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frife2%2Fbld","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frife2%2Fbld/lists"}