ot-clean, Zero maintenance overhead
The amount of time I can spend on open source project is limited. That is why maintainability is priority number one for me. If I want to add a new feature I want to focus on new feature only, no distractions. That is why one of the first things I have done was automation of entire project lifecycle. This includes building, high-coverage testing and single command release.
jcabi-parent is a parent pom from jcabi components which simplify getting up to date
versions of popular dependencies. By updating version of parent pom, we can automatically update most of the libraries
used in the project.
Qulice is Quality control instrument for Java projects. Very restrictive tool that preconfigures many code quality libraries like:
- Maven dependency analysis
Maven-assembly-plugin + jar-with-dependencies
ot-clean is a command line tool. In order to prepare release I need to pack everything as a standalone jar file, add some execution scripts and pack everything together. I was looking for some easy way to do this and it turns out that those two plugins are handling this quite nicely.
Finally, when the project is ready I wanted to distribute it easily. This plugin is handling few steps:
- creates new GitHub release using project version,
- creates git tag (using current branch),
- attaches zipped distribution
- attaches project jar file
- attaches source code (zip and tar.gz version)
Build & Release
In order to build and release my project I just need to execute two lines:
mvn clean install -Pqulice,cobertura mvn github-release:release
The ot-clean series
This blog post is one of the series about the ot-clean. Simple open source tool that maintains your projects directories cleaned from all the garbage. Feel free to look at the source code or readme page for more information. You can also submit pull request or post suggestion. This text participates in open source blogging competition.
All posts from the ot-clean series
- 06 May 2016 » ot-clean, Final version
- 04 May 2016 » ot-clean, Tests refactoring
- 29 Apr 2016 » ot-clean, Refactoring and cleaning DSL (4/4)
- 26 Apr 2016 » ot-clean, Refactoring and cleaning DSL (3/4)
- 22 Apr 2016 » ot-clean, Refactoring and cleaning DSL (2/4)
- 19 Apr 2016 » ot-clean, Refactoring and cleaning DSL (1/4)
- 15 Apr 2016 » ot-clean, MatcherAssert vs Assert, which assertThat?
- 12 Apr 2016 » ot-clean, Grails 2.x/3.x, PlayFramework 2.x support
- 08 Apr 2016 » ot-clean, Complete use case
- 05 Apr 2016 » ot-clean, Scan multiple unrelated directories
- 01 Apr 2016 » ot-clean, Coveralls integration and code cleanup
- 29 Mar 2016 » ot-clean, How to access maven artifact version at runtime?
- 25 Mar 2016 » ot-clean, Wildcards
- 21 Mar 2016 » ot-clean, Zero maintenance overhead
- 18 Mar 2016 » ot-clean, Functional config file preprocessing
- 15 Mar 2016 » ot-clean, Cascade and arguments
- 11 Mar 2016 » ot-clean, Handle any project using YAML format
- 08 Mar 2016 » ot-clean, Quickstart
- 04 Mar 2016 » ot-clean, YAML node alias surprise
- 01 Mar 2016 » ot-clean, Single clean to clean them all!
About the author
Grzegorz Gajos, Software Architect with international consulting and programming background. Co-founder of Open Tangerine Software House. Quality evangelist. An experienced entrepreneur, out of the box thinker and problem solver.