Skip to content

barthel/maven-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

maven-utils

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.

1. Requirements

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:

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.

2. Install and Usage

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.

6. Maven Pull Request Validator

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.

7. ShellCheck

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.

8. License

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.

9. Attic

The directory _attic is the place where the old and not supported scripts will be moved into it. These scripts are not maintained anymore.

10. Links

Releases

No releases published

Packages

No packages published

Languages