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 in 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.5.0
Download latest scripts
wget https://raw.githubusercontent.com/takari/maven-wrapper/master/mvnw
wget https://raw.githubusercontent.com/takari/maven-wrapper/master/mvnw.cmd