<!-- Notice: if using java 9 or 10 jres, it is possible to simply use here "8", "9" or "10". But if using java 8 jre, "8" is not an allowed value but only "1.8"-->
<!-- Forcing the enforcer-plugin version: somehow the one declared in pluginManagement doesn't go through without this. No idea why. Other plugins do respect the version in pluginManagement -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.6</version>
</extension>
</extensions>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- binding for log4j 2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>${log4j.version}</version>
<!-- runtime scope includes the test scope as well -->
<scope>runtime</scope>
</dependency>
<!-- Log4j API and Core implementation required for binding -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
<!-- runtime scope includes the test scope as well -->
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
<!-- runtime scope includes the test scope as well -->
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.biojava.thirdparty</groupId>
<artifactId>forester</artifactId>
<version>1.039</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>4.0.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.4.0-jre</version>
</dependency>
</dependencies>
</dependencyManagement>
<reporting>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- Make a single javadoc site at target/site/apidocs subdir with all sub-modules, see:
<!-- Needed for site plugin, to do mvn site:stage (without which a multimodule project won't have all the correct directory structure) -->
<!-- Also seems to be needed at mvn release:perform time, where a mvn site:deploy runs and complains if this is not present -->
<id>biojava.org</id>
<name>The biojava.org site</name>
<!-- NOTE this is not a proper URL supported by mvn site:deploy . That's why in site configuration for release profile we disable deployment with skipDeploy -->
<!-- NOTE we don't actually deploy the "site" but just the "apidocs" part of it to /docs/api -->
<url>https://biojava.org/docs/site</url>
</site>
</distributionManagement>
<profiles>
<profile>
<!-- This is the profile needed for release, e.g.:
mvn -Prelease release:clean release:prepare
mvn -Prelease release:perform
-->
<id>release</id>
<build>
<plugins>
<!-- for deployment on OSS Sonatype -->
<!-- handles propagating the build to the staging repository -->
<!-- This is necessary for gpg to not try to use the pinentry programs -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- create source -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- create javadoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.21.0</version>
<configuration>
<!-- In distributionManagement we have a site setting with a fake url (needed for mvn site:stage to work). This is here to skip the deployment that would fail for the fake url -->
<skipDeploy>true</skipDeploy>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Note: before you can use this build profile you need to set up an
environment that contains correctly signed keys. Configure the keystore properties
and the profile in ~/.m2/settings.xml -->
<!-- Note: as of March 2021 I'm not sure what this profile is needed for. I don't think it is needed for releases, perhaps for automated snapshot builds? - JD 2021 -->