Open robert-w-gries opened 6 years ago
RE: our offline conversation
Right now I see several problems with our current build process:
Based on point 3 alone, we need a build system that comes with dependency management, which Make does not have. I'm going to recommend that we use Gradle, because it has everything we need, it is made for Java projects, and it was created based on the shortcomings of Make, Ant, and Maven. It also has a super clean and easy to read syntax. And it's supported by Travis.
Consider me convinced 😃
I still think Make is a valid tool for build automation, but it just doesn't make sense for a large Java project. Gradle seems like a solid alternative, since I vaguely remember disliking Maven three years ago haha.
JavaCC through Gradle seems like it would work. It's an easy manual instal. So if JavaCC gradle plugin doesn't work, we can just list it as a dependency on our Readme and provide a link to download it.
Regarding point 4, we are tracking the generated parser files so there's no requirement to build the parser. It'd be nice to automatically re-generate the parser files when we change the .jj
files through the plugin.
I would say:
If 1 doesn't work, I'd really try to get 2 working, with 3 as an absolute last resort. Automation is awesome, so if we can get that working, that would be ideal. I don't like having to manually install dependencies.
Edit: After discussion, we've removed the Makefile and are changing to
gradle
for our build system.Tasks:
javar
Original Post:
Makefile needs to be updated to reflect the new code organization structure