An open API service indexing awesome lists of open source software.

https://github.com/moditect/moditect-org-parent

Parent POM for ModiTect projects
https://github.com/moditect/moditect-org-parent

Last synced: 5 months ago
JSON representation

Parent POM for ModiTect projects

Awesome Lists containing this project

README

          

= moditect-org-parent
:project-owner: moditect
:project-name: moditect-org-parent
:project-groupId: org.moditect
:project-artifactId: moditect-org-parent

image:https://github.com/{project-owner}/{project-name}/workflows/Build/badge.svg["Build Status", link="https://github.com/{project-owner}/{project-name}/actions"]
image:https://img.shields.io/maven-central/v/{project-groupId}/{project-artifactId}.svg[Download, link="https://search.maven.org/#search|ga|1|g:{project-groupId} AND a:{project-artifactId}"]

---

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`:

[source,xml]
[subs="verbatim"]
----

foo
moditect/foo
1.8
1.8
1.8

----

== Constraints

The `` 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`:

[source,xml]
[subs="verbatim"]
----

scm:git:${repository.url}
scm:git:${repository.url}
${repository.url}
HEAD

----

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

[source,xml]
[subs="verbatim"]
----

com.mycila
license-maven-plugin

${maven.multiModuleProjectDirectory}/etc/license.txt
true

README.md
LICENSE.txt
mvnw
mvnw.cmd
.mvn/wrapper/maven-wrapper.properties
.mvn/wrapper/MavenWrapperDownloader.java
...

----

Format license headers by invoking

```sh
$ 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.