To apply the 52°North parent pom in your project, add the following to your project's pom.xml
file.
<parent>
<groupId>org.n52</groupId>
<artifactId>parent</artifactId>
<version>24</version>
</parent>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireNoRepositories>
<!-- Allow repositories -->
<banRepositories>false</banRepositories>
<!-- Allow SNAPSHOT repositories -->
<allowSnapshotRepositories>true</allowSnapshotRepositories>
<!-- Define allowed repositories, use repo id -->
<allowedRepositories>
<id>repo ids</id>
</allowedRepositories>
</requireNoRepositories>
</rules>
</configuration>
</execution>
</executions>
</plugin>
If you use only constants from a dependency, you may have to declare it explicitly as used:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<usedDependencies>
<usedDependency>${groupId}:${artifactId}</usedDependency>
</usedDependencies>
</configuration>
</plugin>
If you have dependencies that are used only at runtime, e.g. SAXON XSLT processor or a logging framework such as log4j encapsuled by slf4j, then you must include these dependencies as runtime
as shown in the example below. Otherwise the enforcer plugin will complain about unused dependencies.
[..]
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${version.log4j}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.6.0-7</version>
<scope>runtime</scope>
</dependency>
[..]
Put your Sonatype OSS credentials into your .m2/settings.xml
like this:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>sonatype-nexus-releases</id>
<username>$username</username>
<password>$password</password>
</server>
<server>
<id>sonatype-nexus-snapshots</id>
<username>$username</username>
<password>$password</password>
</server>
</servers>
</settings>
Shouldn't be needed in most cases, as master
is automatically deployed, but just in case:
mvn deploy
mvn release:prepare
mvn release:perform