frodo2
frodo2 copied to clipboard
Improve and simplify install script
Right now the install script triggers multiple Gradle commands. In order to improve build time and simplify we could run just one command: ./gradlew clean assemble install.
The problem with doing that is Gradle configure all the subprojects and the sample apps have a dependency on the frodo2-plugin which does not exist at this time.
After doing some research, this is what I found:
- It is not possible to have a sample module and a regular plugin module to be built together as the dependency on the plugin by the sample project is in the buildscript{} block code.
- A way to deal with it is to remove the samples from the settings.gradle file so that any ./gradlew command from the top-level project does not touch the sample apps
- Example here: https://github.com/JakeWharton/hugo
- Con: They won't appear as modules in the project. Not sure this matters.
- A second way to deal with it is to publish the project publicly so that the sample always had a way to resolve the dependency on the plugin. We can add mavenLocal() on top so that it would fetch from local first but that would allow us to compile everything in one command
- Example here: https://github.com/square/sqldelight)
- Con: We need to make sure Gradle queries the local repo first. We can probably play with SNAPSHOT feature here