Posts Tagged: gradle

Thoughts on Programming and Its Challenges

Posted by & filed under , , .

At the end of another tough week in Netflix I look back at what I have achieved and what has been challenging in achieving it. I do wonder what I do looks like from the outside and I can’t really see how someone would make sense of my job. I sit in front of 3 (sometimes more!) […]

Gotcha When Building Gradle Plugins on Top of docker-java-plugin

Posted by & filed under , .

If you use gradle and docker you must have come across the gradle-docker-plugin. And if you started using it a lot you probably found out that more often than not your builds start using the same boilerplate code to prepare your microservices containers. And if you end up in that situation best thing to avoid boilerplate rubbish […]

Disable PMD Plugin to Run for Test Sources

Posted by & filed under , .

I use PMD in my Gradle builds quite a bit. (Maybe a bit more nowadays that the FindBugs peeps seem to be struggling with that project — see this email from Andrey on this: https://mailman.cs.umd.edu/pipermail/findbugs-discuss/2016-November/004321.html). The issue I had with it is that there is no way to quickly turn off their checks for the src/test/… […]

PMD Rules

Posted by & filed under , .

If you have used such plugins in your project as FindBugs, Checkstyle etc then you quite likely have heard of PMD too. (I have used these tools initially with Apache Maven and nowadays use them via Gradle in my builds, but there’s lots of support for others tools, Ant included.) The trouble with PMD as […]

Gradle Multi-module Projects — Centralized Configuration

Posted by & filed under , .

This is a sweet gradle trick for those of you working on multi-module projects, if you are looking to centralize some of the configuration in the parent gradle build, and avoid repeating configuration / build code across sub-modules. Let’s say you have the following gradle project structure (see image below) where project A is the […]

Small Note on gradle’s afterEvaluate

Posted by & filed under , .

If you use gradle and you took the path to write your own gradle plugins (try it, it’s fun!) to make your build process more … “enjoyable”, then this might come in handy one day. I have worked on a few gradle plugins, some of them inside the Netflix Nebula suite, some of them outside Netflix […]

Netflix Nebula Gradle Plugin and project.version

Posted by & filed under , .

If you use the Netflix OSS Nebula plugin in gradle and you use it for automatic versioning, incrementals etc then you will come across this at some point. (And in the case that some of you have already encountered this, I have to ask why did you not write the blog post I needed when […]

Managing Project Dependencies with Gradle

Posted by & filed under , , .

This is a set of slides that I’ve put together to showcase how we use Gradle in Netflix Ads Engineering to help with dependency management. It goes through multi-module project vs separate Gradle project per module, using properties file with Gradle to specify dependency versions and also how to use the Nebula gradle-dependency-lock to lock […]

Issue with Jersey Multipart Libraries: Missing start boundary

Posted by & filed under , .

This one had me pulling my hairs off and going crazy trying to figure it out so I thought it deserves a space on my blog 🙂 While it’s what it looks like a small fix, it turned out to be a b**ch in terms of googling for an answer as whatever combination of search […]

Gradle — Customize Startup Scripts for Java Applications

Posted by & filed under , .

OK, so you use Gradle to build your Java projects. And if you use the application plugin in Gradle then you get also the startup script generation so you can ship that straight into your prod servers. Thing is, the application plugin generates a “standard” script — which does include the classpath and a whole […]

JaCoCo / Gradle — Excluding Source Files and Classes

Posted by & filed under , .

I have switched recently from Cobertura to JaCoCo so I started becoming more familiar with this tool. (And since you asked, one of the main reasons for the switch is that Cobertura is absolutely terrible when it comes to Java lambdas and pollutes the output with a lot of warning and messages about malformed Java […]

Jenkins CI Trick to Prevent Task from Triggering Itself on SCM Commit

Posted by & filed under , .

I’ve come across this recently working on a project in Netflix and thought worth sharing. The project I was dealing with packages some JavaScript code which, before deployment, needed to be minified. We have set up our Jenkins task such that it polls Git for changes in the master branch and when the changes are […]

Scripting

Cobertura Issue with Ignoring Annotated Methods

Posted by & filed under , .

I’ve decided to plug in Cobertura in (some) of my projects to have an idea on the unit test/code coverage going on. I use Gradle, so I started looking at the Cobertura Gradle plugin. It turns out it’s pretty good — and offers a lot of the functionality that I needed. However, I came across […]