blob: a79bf5ce79539c0602ff2d1dd3b68b94c393e6a8 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>23</version>
<!-- Otherwise maven complains about the pom upstairs having different coordinates. -->
<relativePath></relativePath>
</parent>
<groupId>org.apache.training</groupId>
<artifactId>training-website</artifactId>
<version>0.4.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Training: Website</name>
<description>
Website for the Apache Training project
</description>
<url>https://training.apache.org</url>
<inceptionYear>2019</inceptionYear>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</developerConnection>
<url>https://github.com/apache/incubator-trainingx</url>
<tag>HEAD</tag>
</scm>
<!-- Only configure the site distribution as the rest is handled by the apache parent -->
<distributionManagement>
<site>
<id>apache.website</id>
<url>scm:git:https://gitbox.apache.org/repos/asf/incubator-training.git</url>
</site>
</distributionManagement>
<issueManagement>
<system>Jira</system>
<url>https://issues.apache.org/jira/browse/TRAINING</url>
</issueManagement>
<mailingLists>
<mailingList>
<name>Apache Training Developer List</name>
<subscribe>mailto:dev-subscribe@training.apache.org</subscribe>
<unsubscribe>mailto:dev-unsubscribe@training.apache.org</unsubscribe>
<post>mailto:dev@training.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/training-dev/</archive>
</mailingList>
<mailingList>
<name>Apache Training Commits List</name>
<subscribe>mailto:commit-subscribe@training.apache.org</subscribe>
<unsubscribe>mailto:commits-unsubscribe@training.apache.org</unsubscribe>
<post>mailto:commits@training.apache.org</post>
<archive>http://mail-archives.apache.org/mod_mbox/training-commits/</archive>
</mailingList>
</mailingLists>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
<!-- Site properties -->
<reflow.skin.version>1.5.0</reflow.skin.version>
<fontawesome.version>5.2.0</fontawesome.version>
</properties>
<modules>
</modules>
<build>
<plugins>
<!-- Check if all source files have the required apache license headers -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<id>license-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<!-- Git related files -->
<exclude>**/.git/**</exclude>
<exclude>**/.gitignore</exclude>
<!-- Maven related files -->
<exclude>**/target/**</exclude>
<!-- Eclipse related files -->
<exclude>**/.project</exclude>
<exclude>**/.settings/**</exclude>
<exclude>**/.classpath</exclude>
<!-- IntelliJ related files -->
<exclude>**/.idea/**</exclude>
<exclude>**/*.iml</exclude>
<!-- Asciidoctor generated files -->
<exclude>**/.asciidoctor/**</exclude>
<!-- Jenkins build related files -->
<exclude>.repository/**</exclude>
<!-- JSON doesn't like comments -->
<exclude>**/*.json</exclude>
<!-- Output of the profiler maven extension -->
<exclude>**/.profiler/**</exclude>
<!-- Exclude the binary presentation stuff -->
<exclude>src/site/resources/topics/**</exclude>
</excludes>
</configuration>
</plugin>
<!-- Generate the legally required text files in the jars -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>process-resource-bundles</id>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
<!-- Will generate META-INF/DISCLAIMER -->
<resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle>
</resourceBundles>
<!-- Content in this directory will be appended to generated resources -->
<appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!--
===================================
== ==
== SITE GENERATION PLUGINS ==
== ==
===================================
Starting here the following plugins are used for generating the projects website.
Most of the complexity is due to the fact that we selected "localResouces" in the site.xml
This causes the generated output not to rely on external resources. Therefore we have to
manually take care of fetching and packaging these external resources with the generated site.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<!-- Only execute this for the parent module -->
<inherited>false</inherited>
<phase>pre-site</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>io.github.devacfr.maven.skins</groupId>
<artifactId>reflow-default-webdeps</artifactId>
<version>${reflow.skin.version}</version>
<type>jar</type>
<overWrite>false</overWrite>
<includes>
**/css/bootstrap.min.css,
**/css/fontawesome/*,
**/js/*.js,
**/js/languages/*,
**/js/styles/default.min.css
</includes>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/site</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!--
Replace the bootstrap css with the version of the theme
-->
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>get-fontawesome</id>
<!-- Only execute this for the parent module -->
<inherited>false</inherited>
<phase>pre-site</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<url>https://use.fontawesome.com/releases/v${fontawesome.version}/fontawesome-free-${fontawesome.version}-web.zip</url>
<unpack>true</unpack>
<outputDirectory>${project.build.directory}/dependency/fontawesome</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-site-resources</id>
<!-- Only execute this for the parent module -->
<inherited>false</inherited>
<phase>pre-site</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/site</outputDirectory>
<resources>
<resource>
<directory>
${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web
</directory>
<includes>
<include>css/all.min.css</include>
</includes>
</resource>
<resource>
<directory>
${project.build.directory}/dependency/fontawesome/fontawesome-free-${fontawesome.version}-web/webfonts
</directory>
<targetPath>${project.build.directory}/site/fonts</targetPath>
</resource>
<resource>
<directory>
${project.basedir}/src/content
</directory>
<targetPath>${project.build.directory}/site/contnet</targetPath>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!--
The bootstrap uses "fonts" as directory for locating fonts and fontawesome uses "webfonts".
This plugin updates the css to also use "fonts".
-->
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>streamline-font-urls</id>
<!-- Only execute this for the parent module -->
<inherited>false</inherited>
<phase>pre-site</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<file>${project.build.directory}/site/css/all.min.css</file>
<replacements>
<replacement>
<token>../webfonts/</token>
<value>../fonts/</value>
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
<!--
Make the maven-site-plugin stage the output in the "asf-site" branch
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<!-- mono-module doesn't require site:stage -->
<content>${project.build.directory}/staging</content>
<!-- branch where to deploy -->
<scmBranch>asf-site</scmBranch>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<!--
Make rat output the files with missing licensed directly into the
build output (This way we don't have to look into the rat.txt to find
out which ones)
-->
<consoleOutput>true</consoleOutput>
</configuration>
</plugin>
<!-- Configure the Site generation -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
<configuration>
<!--templateFile>${session.executionRootDirectory}/src/site/template/site.vm</templateFile-->
<generateReports>true</generateReports>
<generateSitemap>true</generateSitemap>
<relativizeDecorationLinks>false</relativizeDecorationLinks>
<locales>en</locales>
<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
<outputEncoding>${project.reporting.outputencoding}</outputEncoding>
<!--
IntelliJ can't find the asciidoc config option in the site plugin, which is correct.
However this config section is used by the asciidoctor site plugin extension. So plead
ignore this error, it's actually ok.
-->
<asciidoc>
<attributes>
<source-highlighter>prettify</source-highlighter>
<imagesoutdir>${project.build.directory}/site/images</imagesoutdir>
</attributes>
<requires>
<require>asciidoctor-diagram</require>
</requires>
</asciidoc>
</configuration>
<dependencies>
<!-- All dependencies needed by the reflow skin -->
<dependency>
<groupId>io.github.devacfr.maven.skins</groupId>
<artifactId>reflow-velocity-tools</artifactId>
<version>${reflow.skin.version}</version>
</dependency>
<!-- add support for scm/git site deployment -->
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-scm</artifactId>
<version>2.12</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-manager-plexus</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-gitexe</artifactId>
<version>1.9.5</version>
</dependency>
<!-- Add support for asciidoctor -->
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.7.1</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>9.1.13.0</version>
</dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-diagram</artifactId>
<version>1.5.4.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
</plugins>
</reporting>
<!-- Make Snapshots of Apache projects available -->
<repositories>
<repository>
<id>apache-snapshots</id>
<url>https://repository.apache.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<profiles>
<profile>
<id>only-eclipse</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<!--
This is a fake plugin which is used to tell m2e (Eclipse) how
to process this maven project.
-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!--
This profile extends the default "apache-release" configuration with automatic checksum-
generation for the release source artifact. It is automatically activated during the
release build and only needed there.
-->
<profile>
<id>apache-release</id>
<build>
<plugins>
<!--
Create MD5 and SHA512 checksum files for the release artifacts.
-->
<plugin>
<groupId>net.nicoulaj.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<goals>
<goal>files</goal>
</goals>
</execution>
</executions>
<configuration>
<algorithms>
<algorithm>SHA-512</algorithm>
</algorithms>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>apache-training-incubating-${project.version}-source-release.zip</include>
</includes>
</fileSet>
</fileSets>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>