Helper scripts around Apache Maven¹ usage.
All these scripts are NOT speed optimized! I'm using these scripts often in my daily work, and they do what they have to do.
A file located in lib/
and/or the file name starts with a _
is primarily for used to include (source) into other scripts. These files providing global re-usable functions and should not be executed directly.
More and deeper documentation could be found in doc/
.
And, YES, I know that manipulating XML files with GNU core-utils⁵ like sed
and awk
is not recommended to use.
I'll take a deeper look on xml-coreutils
or XMLStarlet
.
Most of these scripts are requires UNIX/Linux standard tools and commands like:
All scripts are daily used with GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
on macOS High Sierra and also tested with:
GNU bash, Version 4.4.12(3)-release (x86_64-unknown-cygwin)
on Cygwin 2.11.1GNU bash, version 4.4.19(2)-release (x86_64-pc-msys)
on Git for Windows 2.18.0
Each script checks the required tools and exits with an error if a required tool is not available. Please check the script documentation for additional and/or deviating requirements.
Clone this repository and add it to your PATH
environment variable.
Most of these scripts has a help-option (-h
, -?
), a quiet-option (-q
) and a multi-level verbose-option (-vv...
).
The usage information will be displayed if a script will execute without any arguments or with a help-option (-h
, -?
).
The main intention of scripts with the name prefix set-dependency-version
is to change the artifact version in a bulk.
The most of these provided scripts are working on Apache Maven¹ POM files. Additionally, for Eclipse RCP development, there are more interesting files which has to manipulate too. These files are a bunch of XML and non-XML files which have to manipulate easy.
These scripts are not using Apache Maven¹, rather they based on search-and-replace pattern in specific files (pom.xml
, MANIFEST.MF
...).
See here for more information about this kind of scripts.
The main intention of this script is to change the version of the parent artifact in a bulk of Apache Maven¹ POM files.
See here for more information about this script.
This kind of scripts creates a Graphviz DOT² file with a graph of all dependencies.
See here for more information about these scripts.
The Maven Pull Request Validate script (maven-pr-validator.sh
) based — with small modification — on a script by @jvanzyl and the original script could be found at his GitHubGist.
This script will checkout Maven, apply a PR, build the Maven distribution and run the Maven integration tests against the just-built distribution. If you successfully get to the end of this script then your PR is ready to be reviewed.
ShellCheck³ is a static analysis tool for shell scripts and I'm use it to check my scripts and try to prevent pitfalls.
ShellCheck³ must be configured with the extended option -x
to validate these scripts correctly.
All these scripts, expect maven-pr-validator.sh
, are licensed under the Apache License, Version 2.0⁴.
A copy of this license could be also found in the LICENSE
file.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# (c) barthel <barthel@users.noreply.github.com> https://github.com/barthel
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Maven Pull Request Validate script (maven-pr-validator.sh
) based — with small modification — on a script by @jvanzyl and the original script could be found at his GitHubGist.
The directory _attic
is the place where the old and not supported scripts will be moved into it. These scripts are not maintained anymore.