Hacker News new | ask | show | jobs
by gaurav1804 1454 days ago
1. Since Beast is new, there are not a lot of examples. Benchmarking is going on and it will take some time. In the mean time, you can take a look at how to write beast build files.

2. You can use it for any project you want if you know what are components of your project depend upon what other components. So as I see it, gradle is a build system for Java project in itself. Beast will not be using gradle if you are trying to compile a Java project. BUT.... you can for sure call `gradle` command from inside the beast.build file. Wherever build.gradle file is stored. So that in this case, beast provides you with an easier to use build system. Let us see an example:

In your beast file, you can have something like:

  build hello:
     ! gradle -q hello
and inside your gradle file:

  task hello {
    doLast {
      println 'tutorialspoint'
    }
  }
Hope that helps
1 comments

It doesn’t make sense to have your build tool call another build tool to actually perform the build. In that case, why I would not just use Gradle directly?
There can be several reasons for that. Say your project doesn't only require gradle but other tools to be run too. Or say there are some post-scripts or pre-process-scripts that need to be run. They can be done easily like:

  build pre:
     ! echo 'pre script'

  build proj:
     ! gradle hello
Plus, you might want to run some python scripts or run some other shell commands during or after you have built your gradle project.
Hi! I made a mistake in my previous reply. I forgot mentioning 'pre' as a dependency for 'proj'. I meant something like:

  build pre:
     ! echo 'pre script'

  build proj: pre
     ! gradle hello
This will ensure that 'pre' scripts are run before main 'proj' script!
True. This seems more like a general-purpose task-runner like Task [1] than a self-contained build system.

1. https://taskfile.dev/#/

Hi! Task runner would not be an appropriate term for this. Since it also defines target based on their modification times. This is what we call a general purpose build system, just like we call Make and Ninja build system.

It can do anything you want if you can provide it with proper shell commands and define targets. This can not only be used for tasks but also for physical building targets that can be built on the machine.

I believe that the project you linked here is itself also a build system and not just a task runner. But again, it uses yaml, which might not be best while defining custom things related to a build system