groovy-project-parent
A project containing a few POMs intended as parent POMs for my Groovy projects, plus a resources bundle.
groovy-project-parent
- Top-level parent POM.
- Provides a number of properties that define plugin versions, Groovy and Spock versions, and some other configuration values.
- Provides dependency and plugin versions in
dependencyManagement
andpluginManagement
elements. All versions can be overridden in child POMs by overwriting a property value. - Provides a snapshot repository in
distributionManagement
. - Has one configured build plugin,
sortpom-maven-plugin
, to sort this POM and all inheriting POMs.
<parent>
<groupId>org.venutolo</groupId>
<artifactId>groovy-project-parent</artifactId>
<version>1.1.0</version>
</parent>
groovy-project-parent-with-config
- Child of
groovy-project-parent
. - Provides default configurations for the plugins defined the parent POM's
pluginManagement
section. - Does not define any further build plugins.
<parent>
<groupId>org.venutolo</groupId>
<artifactId>groovy-project-parent-with-config</artifactId>
<version>1.1.0</version>
</parent>
groovy-project-parent-with-build
- Child of
groovy-project-parent-with-config
. - Provides a default build configuration with plugin configurations inherited from
groovy-project-parent-with-config
. - Provides a default site build configuration.
- Provides a default
release
profile that adds GPG artifact signing and deploying to OSSRH to the build.
<parent>
<groupId>org.venutolo</groupId>
<artifactId>groovy-project-parent-with-build</artifactId>
<version>1.1.0</version>
</parent>
groovy-project-resources
- Child of
groovy-project-parent
. -
Provides a resource bundle to be used in other projects via the
maven-remote-resources-plugin
plugin. This includes:- Assembly Descriptors for creating Groovydoc/Javadoc jars.
- CodeNarc configuration files.
- License Maven Plugin header template.
- Maven Site Plugin site descriptor.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-remote-resources-plugin</artifactId> <executions> <execution> <id>get-project-resources</id> <goals> <goal>process</goal> </goals> <phase>generate-resources</phase> <configuration> <resourceBundles> <resourceBundle>org.venutolo:groovy-project-resources:${groovy.project.resources.version}</resourceBundle> </resourceBundles> </configuration> </execution> <execution> <id>get-site-resources</id> <goals> <goal>process</goal> </goals> <phase>pre-site</phase> <configuration> <resourceBundles> <resourceBundle>org.venutolo:groovy-project-resources:${groovy.project.resources.version}</resourceBundle> </resourceBundles> </configuration> </execution> </executions> </plugin>
Make Release
./mvnw "-Darguments=-Dassembly.skipAssembly -Dmaven.source.skip" -B release:clean release:prepare release:perform
Update Maven Wrapper
Use Maven Wrapper plugin
mvn -N io.takari:maven:wrapper -Dmaven=3.3.9
Download latest scripts
wget https://raw.githubusercontent.com/takari/maven-wrapper/master/mvnw
wget https://raw.githubusercontent.com/takari/maven-wrapper/master/mvnw.cmd