Master the New Build System for Android
Android adopted Gradle as the preferred build automation system a few years ago, but many Android developers are still unfamiliar with this open source tool. This hands-on guide provides a collection of Gradle recipes to help you quickly and easily accomplish the most common build tasks for your Android more » apps. You’ll learn how to customize project layouts, add dependencies, and generate many different versions of your app.
Gradle is based on Groovy, yet very little knowledge of the JVM language is required for you to get started. Code examples use Android SDK version 23, with emulators from Marshmallow (Android 6) or Lollipop (Android 5). If you’re comfortable with Java and Android, you’re ready.
* Understand Gradle’s generated build files for Android apps
* Run Gradle from the command line or inside Android Studio
* Add more Java libraries to your Android app
* Import and export Eclipse ADT projects
* Digitally sign a Release APK for the Google Play store
* Use product flavors to build many versions of the same app
* Add custom tasks to the Gradle build process
* Test both your app’s Android and non-Android components
* Improve the performance of your Gradle build « less
Learn how to implement a DSL with Xtext and Xtend using easy-to-understand examples and best practices
ABOUT THIS BOOK
* Leverage the latest features of Xtext and Xtend to develop a domain-specific language.
* Integrate Xtext with popular third party IDEs and get the best out of both worlds.
* Discover how to test a DSL implementation and how to customize runtime and IDE aspects of the DSL
WHO more » THIS BOOK IS FOR
This book is targeted at programmers and developers who want to create a domain-specific language with Xtext. They should have a basic familiarity with Eclipse and its functionality. Previous experience with compiler implementation can be helpful but is not necessary since this book will explain all the development stages of a DSL.
WHAT YOU WILL LEARN
* Write Xtext grammar for a DSL;
* Use Xtend as an alternative to Java to write cleaner, easier-to-read, and more maintainable code;
* Build your Xtext DSLs easily with Maven/Tycho and Gradle;
* Write a code generator and an interpreter for a DSL;
* Explore the Xtext scoping mechanism for symbol resolution;
* Test most aspects of the DSL implementation with JUnit;
* Understand best practices in DSL implementations with Xtext and Xtend;
* Develop your Xtext DSLs using Continuous Integration mechanisms;
* Use an Xtext editor in a web application
Xtext is an open source Eclipse framework for implementing domain-specific languages together with IDE functionalities. It lets you implement languages really quickly; most of all, it covers all aspects of a complete language infrastructure, including the parser, code generator, interpreter, and more.
This book will enable you to implement Domain Specific Languages (DSL) efficiently, together with their IDE tooling, with Xtext and Xtend. Opening with brief coverage of Xtext features involved in DSL implementation, including integration in an IDE, the book will then introduce you to Xtend as this language will be used in all the examples throughout the book. You will then explore the typical programming development workflow with Xtext when we modify the grammar of the DSL.
Further, the Xtend programming language (a fully-featured Java-like language tightly integrated with Java) will be introduced. We then explain the main concepts of Xtext, such as validation, code generation, and customizations of runtime and UI aspects. You will have learned how to test a DSL implemented in Xtext with JUnit and will progress to advanced concepts such as type checking and scoping. You will then integrate the typical Continuous Integration systems built in to Xtext DSLs and familiarize yourself with Xbase. By the end of the book, you will manually maintain the EMF model for an Xtext DSL and will see how an Xtext DSL can also be used in IntelliJ.
STYLE AND APPROACH
A step-by step-tutorial with illustrative examples that will let you master using Xtext and implementing DSLs with its custom language, Xtend. « less
Start building powerful apps that take advantage of the dynamic scripting capabilities of the Groovy language. This book covers Groovy fundamentals, such as installing Groovy, using Groovy tools, and working with the Groovy Development Kit (GDK). You'll also learn more advanced aspects of Groovy, such more » as using Groovy design patterns, writing DSLs in Groovy, and taking advantage of Groovy's functional programming features.
There is more to Groovy than the core language, so Learning Groovy covers the extended Groovy ecosystem. You'll see how to harness Gradle (Groovy's build system), Grails (Groovy's web application framework), Spock (Groovy's testing framework), and Ratpack (Groovy's reactive web library).
What you'll learn
* Groovy fundamentals, including the GDK or Groovy Development Kit
* Advanced Groovy, such as writing Groovy DSLs
* Functional programming in Groovy
* GPars, the built-in concurrency library
* Gradle, the build system
* Grails, the web application framework
* Spock, the testing framework
* Ratpack, the reactive web library
Who is this book for
Although this book is intended for those with a Java background, anyone with basic programming skills could benefit from it. This book is a data-filled, yet easy-to-digest tour of the Groovy language and ecosystem. « less
Learn how to use Gradle's powerful dependency management through extensive code samples, and discover how to define, customize, and deploy dependencies
ABOUT THIS BOOK
* Be in total control of your dependencies
* Deploy your artifacts to repositories with Gradle
* Learn through code snippets and real-life examples
WHO THIS BOOK IS FOR
If you work on Java projects, use Gradle as a build automation tool, and you use dependencies in your project, more » this is the book for you. Additionally, if you want to deploy your project artifacts as dependencies for other developers using Gradle, you've found the right book.
WHAT YOU WILL LEARN
* Define dependencies in your Java projects
* Publish your artifacts to Maven and Ivy repositories
* Configure transitive dependencies
* Install your artifacts in Bintray
* Customize the resolution of dependency rules
* Use your own code as dependencies in a multimodule project
* Configure repositories to resolve dependencies
Gradle is the next generation in build automation. It allows you to define dependencies for your project in a clear way and also customize how they are resolved to suit your needs. It offers fine-grained control over how to publish your artifacts to Maven and Ivy repositories.
Gradle Dependency Management defines dependencies for your Java-based project and customizes how they are resolved. You will learn how to configure the publication of artifacts to different repositories. Packed with plenty of code samples, you will understand how to define the repositories that contain dependencies. Following this, you will learn how to customize the dependency resolution process in Gradle. « less
Master the fundamentals of Gradle using real-world projects with this quick and easy-to-read guide
ABOUT THIS BOOK
* Write beautiful build scripts for various types of projects effortlessly
* Become more productive by harnessing the power and elegance of the Gradle DSL
* Learn how to use Gradle quickly and effectively with this step-by-step guide
WHO THIS BOOK IS FOR
This book is for Java and more » other JVM-based language developers who want to use Gradle or are already using Gradle on their projects.
No prior knowledge of Gradle is required, but some familiarity with build-related terminologies and an understanding of the Java language would help.
WHAT YOU WILL LEARN
* Master the Gradle DSL by identifying the building blocks
* Learn just enough Groovy for Gradle
* Set up tests and reports for your projects to make them CI ready
* Create library, stand-alone, and web projects
* Craft multi-module projects quickly and efficiently
* Migrate existing projects to a modern Gradle build
* Extract common build logic into plugins
* Write builds for languages like Java, Groovy, and Scala
Gradle is an advanced and modern build automation tool. It inherits the best elements of the past generation of build tools, but it also differs and innovates to bring terseness, elegance, simplicity, and the flexibility to build.
Right from installing Gradle and writing your first build file to creating a fully-fledged multi-module project build, this book will guide you through its topics in a step-by-step fashion.
You will get your hands dirty with a simple Java project built with Gradle and go on to build web applications that are run with Jetty or Tomcat. We take a unique approach towards explaining the DSL using the Gradle API, which makes the DSL more accessible and intuitive.
All in all, this book is a concise guide to help you decipher the Gradle build files, covering the essential topics that are most useful in real-world projects. With every chapter, you will learn a new topic and be able to readily implement your build files.
STYLE AND APPROACH
This step-by-step guide focuses on being productive with every chapter. When required, topics are explained in-depth to give you a good foundation of the Gradle fundamentals. The book covers most aspects of builds required for conventional JVM-based projects, and when necessary, points you towards the right resources. « less
Gradle in Action is a comprehensive guide to end-to-end project automation with Gradle. Starting with the basics, this practical, easy-to-read book discusses how to establish an effective build process for a full-fledged, real-world project. Along the way, it covers advanced topics like testing, continuous more » integration, and monitoring code quality. You'll also explore tasks like setting up your target environment and deploying your software.
The book assumes a basic background in Java, but no knowledge of Groovy. « less
Develop better software fast with IntelliJ IDEA
Starting with a walkthrough of the main workspace, you will get up and running with IDEA from the word go. You will learn how to exploit IDEA's software development tools and use the various product features such as source code control, the debugger, and the many code generation tools.
You will then more » move on to advanced topics such as how IntelliJ helps in version control, managing change lists, viewing differences and changes, and reverting changes. You will also learn how IDEA can be used for agile development and web development, as well as its integration with frameworks such as Gradle.
Complete with tips and tricks, this book will make sure that you have an in-depth and extensive knowledge of informed programming. « less
Customizing Next-Generation Builds
If you're familiar with Gradle's basics elements - possibly through the author's previous O'Reilly book, Building and Testing with Gradle - this more advanced guide provides the recipes, techniques, and syntax to help you master this build automation tool. With clear, concise explanations and lots of more » ready-to-use code examples, you'll explore four discrete areas of Gradle functionality: file operations, custom Gradle plugins, build lifecycle hooks, and dependency management.
Learn how to use Gradle's rich set of APIs and Groovy-based Domain Specific Language to customize build software that actually conforms to your product. By using the techniques in this book, you'll be able to write domain-specific builds that support every other line of code your team creates. « less
Empower yourself to automate your build
Create Gradle build scripts from clear examples. Write build logic with the Gradle build language. Compile, test and check your Java, Scala and Groovy applications. Write your own custom tasks and plugins. Use Gradle on continous integrations servers Jenkins, TeamCity and Bamboo. Integrate Gradle with more » Eclipse and IntelliJ IDEA. « less
Understanding Next-Generation Builds
Build and test software written in Java and many other languages with Gradle, the open source project automation tool that's getting a lot of attention. This concise introduction provides numerous code examples to help you explore Gradle, both as a build tool and as a complete solution for automating more » the compilation, test, and release process of simple and enterprise-level applications.
Discover how Gradle improves on the best ideas of Ant, Maven, and other build tools, with standards for developers who want them and lots of flexibility for those who prefer less structure. « less