Skip to content

bmarwell/moditect-org-parent

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

moditect-org-parent

Build Status Download


Parent POM for all Maven based ModiTect projects.

Profiles

The parent POM enables the following profiles on itself and its children:

  • publication: generates sources and javadoc JARs.

  • gpg: signs all attached artifacts.

  • local-deploy: deploys all artifacts to a target directory defined by ${local.repository.path}

The parent POM enables the following profiles on itself alone:

  • jreleaser: creates a GitHub release with changelog.

Requirements

Children projects must define values for the following properties

Given a project named foo located at moditect/foo:

<properties>
    <project.identifier>foo</project.identifier>
    <project.github.repository>moditect/foo</project.github.repository>
    <local.repository.path>/tmp/repository</local.repository.path>
    <java.version>1.8</java.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Constraints

The <scm> block must be defined explicitly at the root of the child project, otherwise the URLs will be set to the wrong paths. Given a project named foo located at moditect/foo:

<scm>
    <connection>scm:git:${repository.url}</connection>
    <developerConnection>scm:git:${repository.url}</developerConnection>
    <url>${repository.url}</url>
    <tag>HEAD</tag>
</scm>

The license-maven-plugin must be defined at the root of the child in order to find the license header template at the right location

<plugin>
    <groupId>com.mycila</groupId>
    <artifactId>license-maven-plugin</artifactId>
    <configuration combine.self="override">
        <header>${rootdir}/etc/license.txt</header>
        <strictCheck>true</strictCheck>
        <excludes>
            <exclude>README.md</exclude>
            <exclude>LICENSE.txt</exclude>
            <exclude>mvnw</exclude>
            <exclude>mvnw.cmd</exclude>
            <exclude>.mvn/wrapper/maven-wrapper.properties</exclude>
            <exclude>.mvn/wrapper/MavenWrapperDownloader.java</exclude>
            <exclude>...</exclude>
        </excludes>
    </configuration>
</plugin>

Format license headers by invoking

$ mvn initialize license:format

Release

Releases are triggered by using the Release workflow which updates the version number, creates the tag, and pushes the new tag.

About

Parent POM for ModiTect projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published