Skip to content

Conversation

@rkrisztian
Copy link

@rkrisztian rkrisztian commented Jun 1, 2023

The Gradle plugin way comes with the following benefits:

  • Vulnerabilty checks for dependencies.
  • Ability to write automated tests and run them in a CI build. (I have started it but we should add more later.)
  • Possibility to use lazy properties in the future. (Should help with eliminating the leftover reliance on 'afterEvaluate` and strict ordering of configurations.)

I have used more idiomatic Gradle/Groovy code style in some places, as well as the Task Configuration Avoidance API.

I have left the original code in, in case they are still needed for compatibility with previous releases.

The Gradle plugin way comes with the following benefits:

* Vulnerabilty checks for dependencies.
* Ability to write automated tests and run them in a CI build. (I have started it but we should add more later.)
* Possibility to use lazy properties in the future. (Should help with eliminating the leftover reliance on 'afterEvaluate` and strict ordering of configurations.)

I have used more idiomatic Gradle/Groovy code style in some places, as well as the Task Configuration Avoidance API.

I have left the original code in, in case they are still needed for compatibility with previous releases.
@rkrisztian
Copy link
Author

rkrisztian commented Jun 2, 2023

I did not add any publication tasks. But it shouldn't be hard:
https://docs.gradle.org/current/userguide/publishing_gradle_plugins.html

@rkrisztian
Copy link
Author

rkrisztian commented Jun 5, 2023

One more thing to add is that now the JSONs are served as resources in the jar. If this kind of releasing is not ideal, then we should discuss a different approach. But I still would not reinvent the wheel and use a HTTP client library to download the JSONs, but configure some Ivy Repository pattern.

I also eliminated the use of /tmp, because it's an unusual pattern for Gradle builds. I'd rather have dependencies coming from more common places like ~/.m2, or ~/.gradle, and put all intermediary files inside the Gradle project's build directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant