#Gradle
🗣️ Nuevo post en el blog
JBake + Gradle + Mastodon
📖 Tarea de Gradle para postear un nuevo post en el blog
@mikabxl @asdf_vm @nixos_org not yet improving it although it‘s build with #gradle 😉
Developing for Android is such an awful experience. An older project had to be updated to SDK 33 because Google reasons. Which means updating almost everything in the project build files. And then this pops up when everything seems to have installed, synced ok.
Gradle is such a card house of shit. I should not have to learn a new language just to build a perfectly simple app. Oh, and everything changes all the time in those fucking build files.

#JCON2023 🎥 ist online: #Maven und #Gradle Side-by-Side #slideless
Stefan Hildebrandt wird Maven- und Gradle-Set-ups nebeneinander legen und typische Use-Cases mit beiden Werkzeugen lösen. Angefangen vom Dependency Management über Pl...
Jetzt Video ansehen: https://www.youtube.com/watch?v=wSRESRXRQow&list=PLFeSAZzYdUociSvSvXHoCM4TDEgvG4AZt&index=1
hildebrandttk@mastodon.social

#JCON2023 🎥 ist online: #Maven und #Gradle Side-by-Side #slideless
Stefan Hildebrandt wird Maven- und Gradle-Set-ups nebeneinander legen und typische Use-Cases mit beiden Werkzeugen lösen. Angefangen vom Dependency Management über Pl...
Jetzt Video ansehen: https://www.youtube.com/watch?v=wSRESRXRQow&list=PLFeSAZzYdUociSvSvXHoCM4TDEgvG4AZt&index=1
hildebrandttk@mastodon.social

Drowning into #Gradle 8.3 attribute resolution breaking changes...
I was bored last night so decided to look into #Gradle sync performance for the $DAYJOB codebase, it averaged around 6 minutes when downloading all dependencies with over 1m30s being wasted in failed HTTP requests. After some massaging with `exclusiveContent` sync is now down to 3m17s with zero HTTP failures :blobDab:
Wednesday Links - Edition 2023-09-06
https://dev.to/0xkkocel/wednesday-links-edition-2023-09-06-1ip
#java #jvm #virtualthreads #reactor #profiling #latency #gradle #sql #devops
Finally got things going in #Gradle. I can't help but wonder why it is that so much in software development is unnecessarily difficult.
On the plus side, integration test code is finally well under way. Onward!
Almost 3 hours straight failing at writing a simple #Gradle Kotlin DSL script that runs a integration test in what amounts to a stub project.
I feel like such a loser.
TIL one really annoying thing about #Gradle is that there are at least 6 different ways of specifying plugins.
Special case notation for certain blessed plugins or classes just makes things harder for beginners like me. *sigh*
1. id("org.jetbrains.kotlin.jvm") version "1.9.0"
2. kotlin("jvm")
3. application
4. apply<JavaPlugin>()
5. apply(plugin = "java")
6. `jvm-test-suite`
This is both tiring and infuriating to learn.
📝 Gradle Changelog Plugin 2.2.0 is here
🤨 What’s that?
🔥 This plugin for the Gradle build system ships a set of tasks and helper methods to simplify working with changelog files!
If you pass change notes to your community and use #gradle, go for it 👇
https://github.com/JetBrains/gradle-changelog-plugin
org.gradle.api.provider.Property<>
org.gradle.api.provider.Provider<>
These concepts changed how #Gradle projects (should) look today.
I talk about why they were introduced and when/how you work with them.
https://www.youtube.com/watch?v=n8Tgr4aLB18&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE
#Gradle supports different options to write plugins. This is good, because it gives you the choice to use what fits your context. Any you should always write plugins - if only to organize your project's build configuration.
But it is confusing 😖. That's why I created this overview:
https://github.com/jjohannes/gradle-plugins-howto
Learn by exploring the difference between writing the same Gradle plugins in:
- Gradle Kotlin DSL
- Gradle Groovy DSL
- #Java
- #Kotlin
- #Groovy
- #Scala
- #Clojure
Wednesday Links - Edition 2023-08-30
https://dev.to/0xkkocel/wednesday-links-edition-2023-08-30-45ce
#java #jvm #gradle #jdbc #strings #productivity
How to create SBOMs in Java with Maven and Gradle https://t.co/hwfpkOJCUY
#Java #Maven #Gradle #SBom #Security https://t.co/DQtY6gWN2n
Hey @androidweekly,
As usual thanks for the support and promoting my video about Gradle Version Catalog ❤️🎥
#ADT #AndroidDeveloperTips #Video #YouTube #Android #AndroidDev #Kotlin #KotlinDev #gradle #versioncatalog

I wrote a blog post about how #Gradle avoids #Java compilation and how that compares to header JARs, with performance measurements! https://blog.gradle.org/our-approach-to-faster-compilation
#Gradle: The platonic ideal of both technical debt and bitrot in an easy-to-download .zip file
🎥 Learn how to use the Gradle Version Catalog in Android projects. 📱👏
In this video, I show how this powerful tool can help you manage dependencies and plugins in a type-safe way. 💯
#VersionCatalog #Gradle #Android #AndroidDev #AndroidDeveloperTips #ADT
Stay tuned for the new video I just finished recording about the Gradle version catalog in Android projects 🎥🔴
https://youtube.com/@AndroidDeveloperTips/
#ADT #AndroidDeveloperTips #Video #YouTube #Android #AndroidDev #Kotlin #KotlinDev #Gradle #VersionCatalog

2 dny se crcám s certifikáty pro firemní Artifactory server, aby z něj dokázal #Gradle tahat balíčky. A zatím bez úspěchu. Chybové hlášky moc nepomáhají ("unable to find valid certification path to requested target"), přes keytool už jsem přidal certifikátů několik a několikrát; neúspěšně.
Já snad vymyslím skript, který to bude z Artifactory tahat sám než luštit, jak Gradle vnutit, co chci. :)
A nebo budu místo vývoje další dny řešit, jak fungují certifikáty v #Java build systémech.
„#Maven treats every project as a regular standard project. … #Gradle claims that lack of flexibility is an issue; hence, it wants to fix it.
I stand by the opposite: lack of flexibility for my build tool is a feature, not a bug.“
https://foojay.io/today/my-final-take-on-gradle-vs-maven/
RT @foojay
(in German)
In der neuen Ausgabe (05/2023) der Java aktuell geht es um Build Tools. Da darf ein Artikel von mir natürlich nicht fehlen. Unter der Überschrift "Anwendungen mit Java-Modulen und Gradle elegant strukturieren" schreibe ich darüber, wie ihr die Stärken des Java-Modul-Systems und Gradle kombiniert.
Die digitale Fassung des Magazins gibt es hier kostenlos:
https://shop.doag.org/zeitschriften/id.206.java-aktuell-05-2023-build-tools
A weekend learning #Gradle. Not sure I feel completely comfortable just yet, but I think this is going to ultimately pay off.
It really pisses me off that printing the task dependency tree isn’t a built in #gradle feature and barely supported by plugins. It is a build tool. It should do that.
Android Gradle Plugin experts, any ideas why I can't generate Kotlin source in my build? https://stackoverflow.com/q/76855573/6540 #AndroidDev #Gradle
A one-day build idea:
I use the HTTP request actions in #Tasker to automate the creation of time entries in #Toggl, but that's been pretty darn flaky for me recently. Not sure if that's my internet, my phone, or Toggl's API blocking my requests.
Tasker provides a library and POC code for creating native plugins. So, let's try that! It's an excuse to get back into some #Flutter development, and it'll force me to get exposed to #Gradle and #Kotlin.
Time to give it a shot!
In this post, I’d like to shed some light on my stance regarding #gradle, so I can direct people to it instead of debunking the same "reasoning" repeatedly.
I wrote a blog post about #minecraft plugin development for #paper and #spigot using #gradle.
With the eco system the minecraft community build around gradle it is simply the best build tool out there for minecraft development
The guide is not only for people who use gradle already, but also for beginners which never used gradle before c: Give it a try!
https://chojo.dev/blog/2023/08/04/minecraft-development-with-gradle-basic-and-advanced-a-guide/
picocli is a great #java library.
with a little #gradle #kotlin voodoo, I was able to generate asciidoc/man files for all the cli command option for integration into the Antora documentation generator.
https://docs.clusterless.io/reference/1.0-wip/commands/cls.html
Hi 👋 I am Jendrik and I do software build automation and improve developer productivity using #Gradle – with focus on #Java #JVM #Android #Kotlin
🎞️ My ongoing Understanding Gradle video series:
https://youtube.com/@jjohannes
✨ Gradle plugins and examples
https://github.com/jjohannes
📚 My Modern Gradle Fundamentals online course https://www.udemy.com/course/modern-gradle-fundamentals/?referralCode=3AC1B96C0EBE6F4FBE6E
Dealing with such (unavoidable) complexity has always been problematic in the JVM ecosystems. So it is exciting what #Gradle offers today (which we did not have ~3 years ago) if we use it smartly. And there is no other build tool with comparable features right now.
How to structure software projects with #Gradle?
A thread 👇
Just one of those days when I'm reminded that the only reason we use #Gradle in our builds, and don't explore other options, is the choice by #Google to not support other tools as first class citizens.
To me it's one of the best examples of why monopolistic environments are bad.
(Context: I've worked on build tooling, I do use Gradle build scans to optimise our builds, this isn't just a random opinion of the day)

java-info-action 1.11.0 🎉 Remove node modules for easier development - Thx to mehdi-ra Try it out! https://github.com/marketplace/actions/java-info-action #GitHubActions #java #maven #gradle #workflow #github #githubactions #githubaction @github
Tales from the jar side, including how to zip and unzip files using Gradle (with a rant about Groovy vs Kotlin), some more AI experiments, and the usual silly tweets and toots and skeets oh my
#gradle #groovy #kotlin #AI
https://kenkousen.substack.com/p/tales-from-the-jar-side-archives?utm_source=mastodon&sd=pf
So #intellij introduce their AI Assistant 🤖 on their last Intellij Ultimate EAP release, I've been using it for a week or so for my #kotlin #gradle #springboot projects and it's pretty great! I wrote and record a small demo of the automatic commit message generation 🔮 https://isabeliita90.hashnode.dev/bye-bye-wip-commits
what do you think? will you use it? :blobcatnerd:
I stopped feeling bad about #autotools files (configure.ac Makefile.am m4/*) when I realized how much noise a new maven package throws on your disk.
The main difference is: for #maven / #npm / #cargo / #gradle / #bazel / ... these are autogenerated.
That’s why I started #conf: https://hg.sr.ht/~arnebab/conf — auto-generation for autotools projects with `conf new --lang <language>`.
It needs more templates … contributions welcome!
(just send me a patch or a link to pull from)
#gnu #make #freesoftware
Maven Central and Gradle Plugin Portal should have never allowed to publish dependencies with not-fixed versions.
If you don't check your transitives carefully, something might sneak in. And you have non-reproducible builds. Which you only notice once something breaks.
Almost 4 years ago, I wrote a blogpost about why Gradle introduces a new metadata format to overcome limitations of the POM format.
As example, I explored the widely-used Google Guava library.
We also proposed to Guava to publish this metadata (which was a bit involved as they build with Maven+ShScripts).
Yesterday, my PR was merged! Sometimes persistence and patience pays off in the open source Java ecosystem.
Migrate from Groovy to Kotlin DSL in Gradle: A Comprehensive Guide
Testing #Java Modules (in #jpms) can be painful at first. But a good test setup with modules brings your test runtime closer to production, as it does not (always) mix production and test code at test runtime. (Which, traditionally, most Java projects do.)
Interested in more? Watch my latest Understanding #Gradle video:
https://www.youtube.com/watch?v=6rFEDcP8Noc&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE
Even after all this time I'm still not a fan of #gradle. I use it because that's where the support is for #android development, but, on a purely build bases, #bazel and #buck are, in my experience, more robust build tools.
Today's "Nope, still don't like it" trigger was having a gradle build fail with "Gradle build daemon disappeared unexpectedly..." when the build has been specified as to not use a daemon. That's either poor parameter naming, or documented parameters being ignored.
Just a handy command-line tool
Back to Maven? I get the feeling that we add unnecessary complexity. When Gradle is the answer, then you probably do too much custom stuff or just follow the hype. https://novaannabella.github.io/the_unspoken/back_to_maven/ #Development #Gradle #Maven #CI_CD
I think I'm falling in love with #Gradle buildscans.
the #gradle plugin for jsonnet is now 1.0.0 and will work with #Java 11
https://plugins.gradle.org/plugin/io.github.chklauser.sjsonnet
Hey #kotlin devs, how do you distribute apps these days?
Let's say I write a CLI app in Kotlin, how would I distribute this easily?
in .NET I can simply make it a "dotnet tool" and that CLI app will be available either locally or globally depending on the user's choice but I can also build standalone binaries to distribute via : dotnet publish
Can some one give me pointers here?
#gradle #java #kotlin #softwaredevelopment
A funny poem about #gradle and #OPENRNDR :)
https://openrndr.discourse.group/t/improving-the-guide/555/4
Pünktlich zum Feiertag beglücken wir euch mit einer neuen Folge 🎉
Neben Omas Sonntagessen 🐂 gibt es auch ein Backen Spezial 🍰 .
Mechanische Tastaturen kommen langsam wieder ⌨️ und als Thema gibt es ein #gradle #deepdive und #git
Viel Spaß beim Hören.
https://ready-for-review.dev/2023/05/01/rfr046-trekkies-und-gradle/
It is crazy that developers think that deleting #Gradle caches is going to fix their dependency resolution problems. It won't : Gradle is _reliable_., deleting the caches will put the tool in a bad state. If it doesn't refresh a dynamic dependency like SNAPSHOT, use `--refresh-dependencies`, that's all.
As for the use of #Kotlin in #Gradle, let me tell you a story. A few years back, when I joined #Gradle, my first job was to optimize #Groovy script compilation to make Gradle startup faster. I delivered, and no one barely notices Groovy script compilation times in #Gradle. Now, try #Kotlin scripts. It's orders of magnitude slower, and you have to download a 50MB+ compiler dependency.
I am _not_ writing any production code in #Groovy. I am not writing #Gradle plugins in Groovy either. For that, I use #Java. Note that I'm not using #Kotlin either. While I think #Kotlin has a sweet spot for #Android and multi-platform development, I think #Java has significantly evolved in the latest versions, making it way less verbose and even compelling. It still lacks some features of both #groovy and #kotlin, but it's extremely pragmatic and rock solid.
For example, I am writing tests using #SpockFramework (https://spockframework.org) and have yet to find something more elegant and practical than this to write tests. Unfortunately not usable in all contexts (e.g native) because of the dynamic nature of #groovy .
I am also using #groovy with #gradle itself, but I prefer #kotlin scripts in most situations. But the static nature of the language makes some patterns quite hard to implement (e.g https://github.com/gradle/gradle/issues/15383)
I see a lot of comments after the announcement from #Gradle that they would default to #Kotlin as a DSL, rather than #Groovy. Some asking "what's left to #Groovy".
A few comments. First, I have contributed a lot to #Groovy . For example, I contributed many AST transformations, as well as the static compiler. A few years ago, I left the project, but I am still using Groovy _everyday_.
#Kotlin is now the default DSL language for #Gradle builds. 🥳
https://blog.jetbrains.com/kotlin/2023/04/kotlin-dsl-is-the-default-for-new-gradle-builds/
This #Maven and #Gradle plugin generates #TypeScript definition files from #Java JSON. It helps us a lot when frontend and backend teams collaborate: https://github.com/vojtechhabarta/typescript-generator
Reminder: if you use `dependsOn` in #Gradle, you are likely doing it wrong. https://melix.github.io/blog/2021/10/gradle-quickie-dependson.html
@aeveltstra issue with file encoding in Java is often that it takes the system defaults when a new JVM is started. #Gradle runs the tests in separate JVMs for parallelization. It unfortunately does not have a 'central' setting for file encoding. You can set it for the "Test Worker JVMs" by configuring the tests tasks with
systemProperty("file.encoding", "UTF-8")
More on this:
https://www.youtube.com/watch?v=YJjNQJSaFww&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE
Big update: Gradle 8. lot of new features: https://docs.gradle.org/8.0/release-notes.html
#java #gradle #kotlin
🤖 Tips and Tricks from the #Gradle Community
Tracing #Java Dependencies With Gradle — guides you through the options to understand your #dependencies, including how to use dependencyInsight - https://mckornfield.medium.com/tracing-java-dependencies-with-gradle-98dd93f8e973
#GradleTipshttps://mckornfield.medium.com/tracing-java-dependencies-with-gradle-98dd93f8e973
Need a #productivity boost? Next week we got new workshops and trainings to help you become a productivity machine! #Java #Gradle #Maven #Bazel #Android
2/14 - Gradle Build #Cache Deep Dive: https://gradle.com/training/gradle-build-cache-deep-dive-3/?time=1676332800
2/15 - Gradle Build Cache Deep Dive - EMEA: https://gradle.com/training/gradle-build-cache-deep-dive-emea/?time=1676419200
2/16 - Intro to #DPE Workshop: https://gradle.com/training/intro-to-dpe-workshop-2/?time=1676505600https://www.facebook.com/photo.php?fbid=644077451052547&set=a.528530279273932&type=3
Built-in Support for #JVM Code Quality Tools - The #Gradle distribution includes #plugins for:
#Checkstyle - https://docs.gradle.org/current/userguide/checkstyle_plugin.html
#CodeNarc - https://docs.gradle.org/current/userguide/codenarc_plugin.html
#PMD - https://docs.gradle.org/current/userguide/pmd_plugin.html
#JaCoCo - https://docs.gradle.org/current/userguide/jacoco_plugin.html
and many others.https://www.facebook.com/photo.php?fbid=634382428688716&set=a.528530279273932&type=3
On January 11th 2023, #gradle was contacted by MinecraftOnline about two unusual and suspicious Gradle wrapper JARs found in some of their repositories.
Read about the story here
https://blog.gradle.org/wrapper-attack-report
Read about how to protect yourself against such #supplychainattacks here
https://blog.gradle.org/project-integrity
How to fuzz Java projects in Gradle using CI Fuzz CLI
We open-sourced CI Fuzz CLI, a fuzz testing solution for Java, that integrates into JUnit and other popular dev tools.
I’ve created a tutorial to show how easy it can be to uncover vulnerabilities in Java applications using CI Fuzz CLI in #Gradle.
More of this in my live stream next week: https://www.code-intelligence.com/webinar/beyond-unit-testing