Java Build

Open-source Java projects categorized as Build

Top 5 Java Build Projects

  • Bazel

    a fast, scalable, multi-language and extensible build system

    Project mention: Ask HN: How do you deal with large Python code bases? | | 2023-05-28

    The larger your codebase gets the more bazel becomes a requirement. Bazel is really not negotiable for large python code bases. The more bazel is put off, the more pain you will endure before you eventually are forced to use bazel. You will be forced to use bazel or a system like it because eventually your good devs will not tolerate your codebase and leave without it.

    Other than bazel you will have to start hacking away at dependency problems.

    No inline imports, no circular imports. Imports all sorted at the top of your file. You will have to start enforcing good hygiene with linters.

    You will need to create warnings against using the global scope.

    You will need to construct the clients for all your dependencies in main()

    You will need to discourage the use of calling non trivial functions in constructors. (this property largely encourages dependency injection).

    There are exceptions to every rule, but if you are going to violate scope or not dependency inject, those things need to be done very mindfully.

    As the structure of your code improves via good scoping and injected dependencies, it will become easier to change and easier to test.

    You will have to devote some serious consideration to how to quarantine business logic from server code. Generally, your product developers shouldn't be doing much outside of defining their data and altering business logic from within a route. If the place where business logic is executed is commingled with how data-stores are manipulated, you're going to have a bad time. Likewise if the place business logic is executed is commingled with the presentation of it to customers, you're going to have a bad time.

    Python does not have a culture of dependency injection because it's so easy to import antigravity and fly away. This makes writing tests hard and promotes spaghetti code. Lack of dependency injection (which means violating scoping) is the entropic force that makes codebases miserable as time increases.

    Additionally, you will have to think hard about state. If you can't restart a process trivially, or balance traffic to a different machine trivially, you are going to make your operational people's lives hard. State belongs in state storage. Put it in an RDBMS, put it in redis, put it in memcached, put it in anything but a python processes memory. This means that any two requests should be able to be sent to any two machines. This is a deeply important property for scaling.

    Lastly, if you do not have good answers for observability, in terms of time series data, log data, exception data, and event data (for observability only), you will have a bad time. These are generally the things it is ok to violate scope to use.

  • Buck

    A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.

    Project mention: Just: A Command Runner | | 2023-01-09

    Oh excellent, then better (and more portable!) tools are available:

    and, if you hate yourself:

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • Apache Maven

    Apache Maven core

  • Apache Ant

    Apache Ant is a Java-based build tool. (by apache)

    Project mention: Want to Get Better at Java? Go Old School. | | 2023-01-18

    I will not suggest truly old-school Java programming. When I started in Java, we built Java classes with the javac command. This led to writing shell scripts to build complex projects and finally, Makefiles using the Unix and Windows commands make and nmake respectively. I remember being thrilled when the Ant utility came out and we had a pure Java build tool.

  • hashver-maven-plugin

    Project mention: When to Use Bazel? | | 2022-09-13

    If you are stuck with large Java / Maven repository and want to speedup builds, check this out:

  • CodiumAI

    TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-05-28.

Java Build related posts


What are some of the best open-source Build projects in Java? This list will help you:

Project Stars
1 Bazel 20,829
2 Buck 8,549
3 Apache Maven 3,633
4 Apache Ant 369
5 hashver-maven-plugin 10
ONLYOFFICE Docs — document collaboration in your environment
Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises