Replace your Scripts with Gradle Tasks

I really like Maven, and I really like the declarative build style, but recently I finally came to understand why Gradle is better.

For small projects that produce a common library JAR, you can still use Maven, but real-life, complex software projects always contain a lot of support scripts for deployment, copying artifacts, and so on. For some of those tasks you can find Maven plug-ins, for most of them you can write Maven plugins, but in real life you have shell scripts to do the job.

Spring Data and R2DBC by Example

R2DBC is a project that enables us to develop reactive programs API with relational databases, as we can do with databases that natively offer reactive drivers, like for example, Mongo or Cassandra.

Spring Data R2DBC is an abstraction of Spring to use repositories that support R2DBC and allows us a functional approach to interact with a relational database.

What Is Ant, Really?

Ant is a bit of a mystery bag. Its behavior is often obscure until you come to look at its code. Then you find that it consists of a number of fairly simple facilities that are often explained from a bottom-up detailed and technical viewpoint and not from a top-down architectural perspective. This article aims to provide the missing top-down view. It is targeted at an audience of software engineers. Armed with this article, and some solid opinions on when and when not to use this tool, you should be able to find your way in the anthill.

Ant History, Legacy, and Impact

If you have never heard of Ant, don't worry. Ant is yet ANother Tool in the realm of building software. It was the first attempt at a build tool for Java. When it was conceived, XML was all the rage, and C was the way to express software that Java mimicked. Consequently, Ant was influenced by the thinking of C's make tool. Combining these two trends, Ant is a curious hybrid that does not have make's terseness or stringent reproducibility but does have XMLs verbose syntax. Talk about the best of both worlds.

How Gradle is Built: CI From the Trenches #5 [Video]

How is a popular build system like Gradle built? How many people are working on it? What programming languages do they use?

How do they handle pull-request-based development? How do they make sure Gradle runs on a variety of operating systems and JDK versions? What is the difference between Gradle and Gradle Enterprise?

Multi-Module Gradle Configuration With Git X-Modules

Developing an application and a few libraries in parallel could be quite painful.

On one hand, it makes sense to create a separate Git repository (and a separate Gradle project) for each library and for the app itself. Then the libraries and the app would be connected via Gradle dependencies. So if a bug in the app is caused by a bug in one of the libraries, to fix it one has to

7 Tips to Achieve High-Availability(HA) For Your Maven Repository

Cloud Computing has emerged as a novel technology today. Every company is a software company today, and it is evident that no company can service without using the power of cloud computing. The cloud is seen as a conceptual layer on the Internet, making all available software and hardware resources transparent, rendering them accessible through a well-defined interface. 

As the companies are increasingly relying on these cloud computing services to be always stable and accessible whenever their customers need them, the services and applications' downtime is highly unacceptable. In this article, we will be discussing the concepts related to high availability (HA), what it is, how it works, and how companies can take advantage of this. 

How to Test Gradle Plugins

In this article, I share my experience of creating functional tests for a custom Gradle plugin and how to configure the plugin project to collect code coverage metrics from tests.

In the previous article, I described how to build a custom Gradle plugin. Here, we will continue to work with it. Before we start, I’d recommend recapping things in the previous article to get a better understanding of where we started.

Openshift and AWS Lambda Deployment With Quarkus

Nowadays Quarkus known as SUPERSONIC SUBATOMIC JAVA. It provides a lot of features to facilitate build and deployment. To did my best by creating a small blog application with quarkus with installed features: rest-client, security, spring-data-jpa, smallrye-health and openapi, Kubernetes, and AWS deployment to tried it real.

Prerequisites

  • JDK 11 for running app
  • Gradle 6+ — for packaging
  • Docker
  • OpenShift CLI — for deploying on OpenShift
  • AWS CLI, AWS SAM CLI — for deploying AWS Lambda

Docker

Quarkus provides extensions for building (and pushing) container images. Currently, it supports Jib, S2I, Docker.

The Complete Gradle Plugin Tutorial

Gradle is a very powerful tool that allows you to set up a build process for your project, no matter how complex it is. But, when I faced the need of interacting with a Gradle project (set up from scratch, extending, or just fix a few lines of code) I hardly managed to do it without additional Googling. If you’ve ever felt the same, you should build your own plugin that might help understand how Gradle works.

This tutorial is useful for developers who also want to build their own plugins. I will describe how to do it in detail from creating a plugin project up to applying a plugin to a project.

Build a Secure Spring Boot App With Kotlin

Learn how to build a secure Spring Boot app with Kotlin.

Kotlin was created by JetBrains in 2011 to make app development easier and to address some well-known issues with Java at the time like its verbosity.  It rapidly gained popularity and even more so when Google formally announced Kotlin support on Android.

Countless companies are taking advantage of the features that Kotlin offers and switching over from Java, making it a significant language within the Java Virtual Machine (JVM) ecosystem. 

Building a Java App With Gradle

Build a Java web app with Gradle!

Gradle and Maven are two major build systems in the Java universe. Build systems are used for executing intricate webs of dependencies compiling the project, as well as bundling the resource and metafiles into the final .war or .jar file.

Both Maven and Gradle systems are awesome to work with. However, I prefer Gradle for a more complicated project. In this tutorial, I’ll cover everything you ever wanted to know about building a Java application with Gradle.

Simplify Your Script Build With Gradle

Learn more about how to simplify your script build with Gradle

Gradle is an open-source build automation system that builds upon the concepts of Apache Ant and Apache Maven, and introduces a Groovy-based, domain-specific language (DSL), instead of the XML form used by Apache Maven to declare the project configuration. This post will cover how easy it is to use this tool, and how to migrate your Maven project to Gradle to run it on Platform.sh.

You may also like:  Make or Break Your Code With Gradle

Gradle is an excellent build tool with which we can automate Java applications using a clean DSL. But it’s essential to mention that Maven is still a valid and mature tool, and Gradle doesn’t deprecate Maven. There are several tutorials where both devices are compared, and you can see several companies going back and forth between Maven and Gradle. The answer to which one is the better tool is still uncertain. What matters is that at Platform.sh, you can choose both to move your Java application to the cloud.

Speeding Up Development by Splitting the Project Between Teams

The case behind this article aimed to complete a large-scale project in a short amount of time. Obviously, you just need to hire a lot of people, and then you have to make sure they don't hinder each other. The latter is the most complicated; there is no way to make it happen without a good technical approach — and that's what exactly we are going to talk about.

Our team has been working on a large mobile app for a major telecom company. The app has its "core" functionality (main use cases), and some extensions that offer additional use cases — but, essentially, the app can work without them. Further, we will refer to these extensions as "features."

The Bill of Materials in Maven

This blog was first published at Knoldus Blogs.

Lately, while working with Spring WebFlux, I came across this really helpful concept called the bill of materials, also known as BOM, a concept not really limited to Spring at all. BOM is one of the few ways Spring helps us forget about issues related to transitive dependencies and focus solely on our project requirements.