No description
Find a file
Sander Hautvast 3b81dd314b wip parents
2024-01-18 16:12:16 +01:00
src wip parents 2024-01-18 16:12:16 +01:00
tests/sample_project add extra repo's 2024-01-16 22:06:33 +01:00
.gitignore basic download facility with SHA1 verification 2024-01-15 12:35:06 +01:00
Cargo.lock wip parents 2024-01-18 16:12:16 +01:00
Cargo.toml wip parents 2024-01-18 16:12:16 +01:00
README.md compiles main classes (todo dependencies) 2024-01-15 18:14:18 +01:00

Jargo

An experimental build tool for Java taking inspiration from Cargo.

And it's called Jargo. I do not wish to put a J in front of anything, as is the java tradition, but 'jargo' actually sounds kinda nice and it conveys pretty much what it is.

It is NOT a new maven (not yet at least). That's the reason it's not called 'raven.'

Basic premisses:

  1. written in Rust
  2. does NOT copy anything from the maven philosophy (phases, goals etc). Instead find out on the go what would be a good design. That said, some things are just good to keep using, such as the default project structure.
  3. configured in TOML. ie. no XML, yay!, AND no Turing-completeness (groovy/kotlin in gradle), yay2!!

see tests/sample_project/Jargo.toml to get an impression of what that looks like.

Goals:

  1. Simple management of (test) dependencies, using existing maven repositories
  2. ability to compile to jar files
  3. ability to run unit tests

After this, we'll validate it's performance. If it's not faster/easier/better than maven, then abort

But instead, if it will save you time/resources/heart failure, then why not take this next level?

  1. upload to maven repo's
  2. plugin mechanism for specific goals (code generation, javadoc, etc).
  3. migrating from maven in actual projects

Questions:

  1. Why?

Every tool is currently being rewritten in rust. And for good reason!

  1. Why not create a drop-in replacement for maven written in rust?

While that would (in theory) make migration a no-brainer, it seems too ambitious based on what I've seen of the maven codebase. Other than that you will most likely run into onforeseen issues while migrating this way, because this or that is subtly different here and there. Better avoid the promise of easy migration altogether.