<?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="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>
    </parent>

    <groupId>org.apache.freemarker.generator</groupId>
    <artifactId>freemarker-generator</artifactId>
    <packaging>pom</packaging>
    <version>0.2.0-SNAPSHOT</version>
    <name>Apache FreeMarker Generator</name>
    <url>https://freemarker-generator.apache.org/</url>

    <issueManagement>
        <system>jira</system>
        <url>https://issues.apache.org/jira/browse/FREEMARKER/</url>
    </issueManagement>

    <distributionManagement>
        <site>
            <id>apache.website</id>
            <name>Apache Website</name>
            <url>scp://people.apache.org/www/freemarker-generator/</url>
        </site>
    </distributionManagement>

    <mailingLists>
        <mailingList>
            <name>FreeMarker developer list</name>
            <post>dev@freemarker.apache.org</post>
            <subscribe>dev-subscribe@freemarker.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@freemarker.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/freemarker-dev/</archive>
        </mailingList>
        <mailingList>
            <name>FreeMarker commit and Jira notifications list</name>
            <post>notifications@freemarker.apache.org</post>
            <subscribe>notifications-subscribe@freemarker.apache.org</subscribe>
            <unsubscribe>notifications-unsubscribe@freemarker.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/freemarker-notifications/</archive>
        </mailingList>
        <mailingList>
            <name>FreeMarker management private</name>
            <post>private@freemarker.apache.org</post>
        </mailingList>
    </mailingLists>

    <scm>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/freemarker-generator.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/freemarker-generator.git
        </developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=freemarker-generator.git</url>
        <tag />
    </scm>

    <modules>
        <module>freemarker-generator-base</module>
        <module>freemarker-generator-tools</module>
        <module>freemarker-generator-cli</module>
        <module>freemarker-generator-maven-plugin</module>
        <!-- Don't build this automatically: <module>freemarker-generator-website</module> -->
    </modules>

    <properties>
        <freemarker.version>2.3.31</freemarker.version>
        <slf4j.version>1.7.30</slf4j.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <developers>
        <developer>
            <name>Siegfried Goeschl</name>
            <organization>ASF</organization>
            <organizationUrl>https://www.apache.org</organizationUrl>
        </developer>
        <developer>
            <name>Daniel Dekany</name>
            <organization>ASF</organization>
            <organizationUrl>https://www.apache.org</organizationUrl>
        </developer>
        <developer>
            <name>Benjamin Jackson</name>
        </developer>
    </developers>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>${freemarker.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.12.0</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.11.0</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-nop</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <defaultGoal>clean install</defaultGoal>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>3.12.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.0.0-M5</version>
                </plugin>
                <plugin>
                    <!-- Required by custom Maven skin -->
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.8.2</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>appassembler-maven-plugin</artifactId>
                    <version>1.10</version>
                </plugin>
                <plugin>
                    <groupId>org.openclover</groupId>
                    <artifactId>clover-maven-plugin</artifactId>
                    <version>4.2.0</version>
                </plugin>
                <plugin>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <version>4.0.0</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <localCheckout>true</localCheckout>
                    <releaseProfiles>release</releaseProfiles>
                    <pushChanges>false</pushChanges>
                    <goals>deploy</goals>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                    <linkXRef>false</linkXRef>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <reportSets>
                    <reportSet>
                        <id>default</id>
                        <reports>
                            <report>javadoc</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
</project>