top | item 31975462

(no title)

prvnsmpth | 3 years ago

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?

discuss

order

gaurav1804|3 years ago

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.

gaurav1804|3 years ago

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!

hiyer|3 years ago

True. This seems more like a general-purpose task-runner like Task [1] than a self-contained build system.

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

gaurav1804|3 years ago

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