kemitix-parent/README.md

228 lines
6.2 KiB
Markdown
Raw Normal View History

2015-11-27 15:41:21 +00:00
KEMITIX-PARENT
==============
This Maven Parent POM several preconfigured plugins.
### Usage
#### Maven
<parent>
<groupId>net.kemitix</groupId>
<artifactId>kemitix-parent</artifactId>
<version>RELEASE</version>
2015-11-27 15:41:21 +00:00
</parent>
## Versions
If you want to override the version or configuration values of any of the
plugins configured by this parent, you can set the following properties to the
desired value.
property|value
--------|-------------
project.build.sourceEncoding|UTF-8
project.reporting.outputEncoding|UTF-8
kemitix.build.directory|target
spring-cloud|Camden.SR5
maven-javadoc-plugin.version|2.10.4
maven-source-plugin.version|3.0.1
maven-gpg-plugin.version|1.6
maven-deploy-plugin.version|2.8.2
kemitix-checkstyle-ruleset.version|2.1.2
digraph-dependency.version|0.7.0
maven-compiler-plugin.version|3.6.1
maven-surefire-plugin.version|2.19.1
maven-failsafe-plugin.version|2.19.1
maven-pmd-plugin.version|3.7
huntbugs.version|0.0.11
pom.xml: upgrade jacoco-maven-plugin to 0.7.9 Release 0.7.9 (2017/02/05) Fixed Bugs "java.lang.ClassFormatError: Short length on BootstrapMethods in class file" caused by bug in ASM library (GitHub #462). Do not recompute frames in case of large methods, otherwise java.lang.ClassNotFoundException might be thrown (GitHub #177). ExecutionDataWriter.FORMAT_VERSION is not a compile-time constant (GitHub #474). Maven goal "prepare-agent" should not overwrite existing property value if execution was skipped (GitHub #486). API Changes JaCoCo.ASM_API_VERSION removed (GitHub #474). Non-functional Changes JaCoCo now depends on ASM 5.2. OSGi metadata now generated automatically and additionally include uses directives, Require-Capability attribute, and export of all internal packages with x-internal:=true directive (GitHub #211). Removed OSGi attributes that were mistakenly added in version 0.6.1 into jacocoant.jar that contains all dependencies (GitHub #211). Release 0.7.8 (2016/12/09) New Features User property jacoco.dataFile for parameter dataFile of Maven report goal (GitHub #322). Fixed Bugs Use RoundingMode#FLOOR instead of RoundingMode#HALF_EVEN for percentages in HTML report, so that "99.5" is displayed as "99%", not as "100%" (GitHub #452). Do not add useless members into Java 8 interfaces that have only interface initialization and abstract methods (GitHub #441). Fix instrumentation to not violate Java Virtual Machine Specification regarding initialization of final fields, otherwise IllegalAccessError will be thrown starting from OpenJDK 9 EA b127 (GitHub #434). Fix instrumentation of interfaces with default methods to not create incorrect constant pool entries, which lead to IncompatibleClassChangeError starting from OpenJDK 9 EA b122 (GitHub #428). Add Maven goal report-aggregate to lifecycle-mapping-metadata.xml (GitHub #427). Non-functional Changes Released JaCoCo JARs are not signed any more. Signed versions of JaCoCo are now available from the Eclipse Orbit project (GitHub #466). Simplified numbering of versions - JaCoCo JARs in Maven Central repository do not have qualifier any more (GitHub #468).
2017-02-09 14:39:41 +00:00
jacoco-maven-plugin.version|0.7.9
highwheel-maven.version|1.2
maven-project-info-reports-plugin.version|2.9
maven-jxr-plugin.version|2.5
jacoco-class-line-covered-ratio|0.50
jacoco-class-instruction-covered-ratio|0.80
jacoco-class-missed-count-maximum|0
## Checkstyle
2015-11-27 15:41:21 +00:00
The Checkstyle plugin is configured using the
`kemitix-checkstyle-ruleset-maven-plugin`.
2015-11-27 15:41:21 +00:00
The `kemitix-checkstyle-ruleset` provides five levels of checks. The
default is set to `5-complexity`, the most strict. It runs during the
`validate` phase.
2015-11-27 15:41:21 +00:00
### Configuration
Set the property `kemitix-checkstyle-ruleset.level` to one of the
following values to select a less-strict ruleset:
2015-11-27 15:41:21 +00:00
* 1-layout
* 2-naming
* 3-javadoc
* 4-tweaks
* 5-complexity
2015-11-27 15:41:21 +00:00
## Maven Compiler Plugin
The [Maven Compiler Plugin](https://maven.apache.org/plugins/maven-compiler-plugin/)
compiles your sources.
### Configuration
Ref: [compile:compile](https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html)
* showDeprecation: true
* showWarnings: true
* source: 1.8
* target: 1.8
## Maven Surefire Plugin
The [Maven Surefire Plugin](http://maven.apache.org/surefire/maven-surefire-plugin/index.html)
runs your Unit Tests.
### Configuration
No configuration applied beyond the defaults.
## Maven Failsafe Plugin
The [Maven Failsafe Plugin](http://maven.apache.org/surefire/maven-failsafe-plugin/index.html)
runs your Integration Tests.
Runs its [integration-test](http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html)
goal during the `verify` phase.
### Configuration
No configuration applied beyond the defaults.
## Maven PMD Plugin
The [Maven PMD Plugin](https://maven.apache.org/plugins/maven-pmd-plugin/index.html)
runs the [PMD](http://pmd.sourceforge.net/) code analysis.
Runs its [pmd](https://maven.apache.org/plugins/maven-pmd-plugin/pmd-mojo.html)
and [cpd](https://maven.apache.org/plugins/maven-pmd-plugin/cpd-mojo.html) goals
2017-01-18 12:05:55 +00:00
during the `compile` phase.
2015-11-27 15:41:21 +00:00
### Configuration
No configuration applied beyond the defaults.
## Huntbugs Maven Plugin
2015-11-27 15:41:21 +00:00
The [Huntbugs Maven Plugin](https://github.com/amaembo/huntbugs) is a
static code analyser.
2015-11-27 15:41:21 +00:00
Runs during the `compile` phase.
2015-11-27 15:41:21 +00:00
### Configuration
No configuration applied beyond the defaults.
## Jacoco Maven Plugin
The [Jacoco Maven Plugin](http://eclemma.org/jacoco/trunk/doc/maven.html)
provides code coverage analysis after your tests have run.
### Configuration
#### Classes
For each class not excluded the Lines Covered Ratio must be at least 50%.
For each class not excluded the Instructions Covered Ration must be at least
80%.
Excluded from analysis:
* `*Test` - test classes
2017-01-18 12:05:55 +00:00
* `*IT` - integration test classes
* `*Main` - main classes
* `*Application` - application classes
* `*Configuration` - (Spring) configuration classes
2015-11-27 15:41:21 +00:00
## Maven Source Plugin
The [Maven Source Plugin](https://maven.apache.org/plugins/maven-source-plugin/)
bundles your sources into a jar file ready for deployment.
2017-01-18 12:05:55 +00:00
Runs its [jar-no-fork](https://maven.apache.org/plugins/maven-source-plugin/jar-no-fork-mojo.html)
2015-11-27 15:41:21 +00:00
goal during the `verify` phase.
### Configuration
No configuration applied beyond the defaults.
## Maven Javadoc Plugin
The [Maven Javadoc Plugin](https://maven.apache.org/plugins/maven-javadoc-plugin/)
generates your html javadocs and bundles them into a jar file ready for
deployment.
2017-01-18 12:05:55 +00:00
Runs its [jar](https://maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html)
2015-11-27 15:41:21 +00:00
goal during the `verify` phase.
### Configuration
No configuration applied beyond the defaults.
## Maven Deploy Plugin
The [Maven Deploy Plugin](https://maven.apache.org/plugins/maven-deploy-plugin/)
uploads your artifacts to a remote repository.
### Configuration
No configuration applied beyond the defaults.
## Maven JXR Plugin
The [Maven JXR Plugin](http://maven.apache.org/jxr/maven-jxr-plugin/index.html)
produces cross-referenced HTML pages of your source code.
### Configuration
No configuration applied beyond the defaults.
## Highwheel Plugin
The [Highwheel Plugin](https://github.com/hcoles/highwheel)
generates a report for packages and classes at `target/highwheel/index.html`
that highlights where there are cyclic dependencies between packages and between
classes.
### Configuration
2017-01-18 12:05:55 +00:00
The plugin will `analyse` the project during the `compile` phase.
## Digraph Dependency Plugin
The [Digraph Dependency Plugin](https://github.com/kemitix/digraph-dependency-maven-plugin)
generates a DOT file diagram showing the dependencies between packages in a project.
### Configuration
The plugin will generate the `target/digraph.dot` file during the `validate` phase.
Set the `digraph-dependency.basePackage` property to the root package to graph.
2015-11-27 15:41:21 +00:00
# Distribution Management
Remote repositories are provided for the Sonatype Nexus Snapshots and Nexus Release
Repositories. See the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html)
for information on how to deploy your artifact the Maven Central through
Sonatype.
### Changing the Build Directory
If you want to change the build directory, e.g. from your settings.xml to an SSD
or ram drive, then set the value of the `kemitix.build.directory` to your required
locations. e.g.
`<properties>
<kemitix.build.directory>/mnt/ramdrive/${project.groupId}/${project.artifactId}</kemitix.build.directory>
</properties>`