Java Build Tool

Hello,

I’d like to hear your opinions on my new project, a Build Tool.

I know a lot of Build Tools exist, such as Apache Ant, Apache Maven and Make etc. But my Build Tool, although not very useful at this time, at least it can be.

My Build Tool, called Builder (org.macroing.builder), is a Java tool that compiles Java source code and has the possibility to do anything. It uses the Java compiler to compile its “scripts”.

So, my question is, what do you like about your Build Tool, and what do you not like about it?

If anyone is interested to get my source code for it, here it is: https://github.com/macroing/Builder

I like Gradle, it has custom scripts known as ‘tasks’ and is very easy to use. Plus it’s widely accepted in the industry

I’m over here like I know what ANT and Maven is… but like what are they D:

I am not one to use build tools. Never had any means to do so. I think its redundant.

Shed any light? Might help OP.

Not redundant when you need to easily move and quickly build projects on hundreds of computers…

Gradle is awesome because it has built in support for dependency management. I love being able to add a line to pull a library from Maven, takes all of 10 seconds and then I am ready to use it in my project. Build systems are infinitely useful in professional software development, at work we use Jenkins to build our platforms. Jenkins can pull down changes from source control, execute our build file (which, among other things, downloads ALL our dependencies. We have a lot of dependencies) and then spit out a compiled, updated version of our platform to be deployed to our different environments. You can emulate that without build tools, but it’s so, so much easier to keep everything organized and easy to move around with them.

Kotlin Meets Gradle

Thanks for answering everyone!

I’ll take a look at Gradle and see how it works. But at this time my tool is probably more like Apache Ant than Apache Maven or Gradle. Well, with the exception that you write Java source code rather than XML to define your scripts. So no dependency management is supported right now.

Seems very extensive to have to download projects to multiple places. I would configure a root network hub for all computer to negotiate over. But thats just me.

I don’t want to break your enthusiasm, but with Maven and Gradle, I think the most powerful/best possible build tools already exist… When you craft a completely new project, the problem is that you will never have enough manpower and knowledge to compete with eiter Maven or Gradle. Instead, try to intensify you experience with Maven and Gradle and try to figure out what you like about them, or where you see room for extension and enhancementss - don’t ask others, ask yourself first.

I think there are very few things that are truly horrible with Maven, everything else works pretty good or perfectly. What totally kills me is the testing utilities Maven offers - everybody knows how important it is to provide simple and easy-to-use tools to test your custom Maven plugins. Sadly, integration tests are barly possible, because the documentation for the testing-harness stuff is so long outdated, the examples don’t work, version conflicts exists etc. So why don’t you implement the functionality you need with Maven (or Gradle) - and first take a look at how far you could get? Since you’re using Ant for your build project, I assume you’re not too familiar with Maven and Gradle. But this should be your first go, I think.

As I said, I don’t want to break your motivation - but especially Gradle is very very generic, you can literally do anything you want, while Maven is just a bit more restrictive.

You’ll understand if you ever work as a professional in software. Source control and build systems make an ugly and convoluted world just a little less ugly and convoluted.

h.pernpeintner:

I do realize that, if I were to compete with any of the existing projects, I would certainly fail. They already have their respective communities backing them and the functionality of years of development. Not to mention a lot of third party plugins (or what each community call their extensions). So this project is only a fun hobby-project for me to work on when I find no motivation to work on my other projects (a Java decompiler and a Java realtime GPU-based Path Tracer), at least at this time.

I have used Maven, but only a few times. For me it was too much work to set it up and get started. But that’s probably just me, and maybe because it has dependency management built-in, in contrast to Ant, which does not. Maybe Gradle require less work to set up than Maven?

Nate wrote a Java Build Tool where the build is defined using Java code.

JGO Thread

Scar’s GitHub page

if compiles with a c-like preprocessor i dig it.

actual: Thanks for the links. It looks somewhat similar to this project.

basil_: I have actually thought about adding a preprocessor. But thanks for mentioning it.