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 dependencyManagementandpluginManagementelements. 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 pluginManagementsection.
- 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 releaseprofile 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-pluginplugin. 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 
 JarCasting
 JarCasting