Gradle Demo project (based on Gradle 4.10). Demonstrate:
- Submodules & dynamic submodules form the sub folder
- Centralized scripts blocks
- Centralized dependency names/versions
- Generated sources
- Integration tests
- Wrapper
- IDE plug-ins
- Attributes in MANIFEST.MF
- JaCoCo
- "all" jar
- self-sufficient archive which contains both classes and dependencies needed to run an application
- "sources" jar
- jar archive with source files, without unit/integration tests
- The project local maven repository
- Checkstyle
- Maven publishing
- Spring Boot
- OSGi
- gradle.properties in the build.gradle
How to run checkstyle:
gradlew checkstyleMain
How to skip tests:
gradlew build -x test
How to run only integration tests:
gradlew build testIntegration -x test
How to force to refresh depnedencies
gradlew build --refresh-dependencies
How to generate wrapper with version 4.10
gradle wrapper --gradle-version 4.10
- ( ) declarative
- ( ) build Lifecycle
- (-) Transitive Dependencies -> "nearest definition"
- (+-) incremental build support: with takari-lifecycle (https://github.com/takari/takari-lifecycle)
- ( ) XML (easy to parse, better IDE integration, better back compatibility, complex to fail)
- (+) multi-module = child to parent
- (+) composite build: additional pom.xml (http://andresalmiray.com/composite-builds-with-maven-and-gradle/)
- (+) build profiles
- (+) wrapper: with takari-maven-plugin (https://github.com/takari/takari-maven-plugin)
- ( ) imperative
- ( ) directed acyclic graph ("DAG") to determine the order in which tasks can be run
- (+) Transitive Dependencies -> latest, fail, custom
- (+) incremental build support.
- ( ) Groovy/etc. (short, flexible, more chances for shit, required more skill)
- (+) multi-module = parent to child
- (+) composite build: setting.gradle
- (+-) build profiles: using project property (-P)
- (+) wrapper
Released under the BSD 2-Clause License
Copyright (C) 2020, Alexei Khatskevich
All rights reserved.
Licensed under the BSD 2-clause (Simplified) License (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://opensource.org/licenses/BSD-2-Clause