Migrated build to maven
diff --git a/.checkstyle b/.checkstyle
deleted file mode 100644
index cec0a36..0000000
--- a/.checkstyle
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<fileset-config file-format-version="1.2.0" simple-config="true">
-    <local-check-config name="Project  style" location="checkstyle.xml" type="project" description="">
-        <additional-data name="protect-config-file" value="false"/>
-    </local-check-config>
-    <fileset name="all" enabled="true" check-config-name="Project  style" local="true">
-        <file-match-pattern match-pattern="." include-pattern="true"/>
-    </fileset>
-</fileset-config>
diff --git a/.classpath b/.classpath
deleted file mode 100644
index 27b9fae..0000000
--- a/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/main"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="lib" path="ide-dependencies/ant-1.9.3.jar"/>
-	<classpathentry kind="lib" path="ide-dependencies/ant-launcher-1.9.3.jar"/>
-	<classpathentry kind="lib" path="ide-dependencies/isorelax-20030108.jar"/>
-	<classpathentry kind="lib" path="ide-dependencies/jing-20091111.jar"/>
-	<classpathentry kind="lib" path="ide-dependencies/saxon-8.7.jar"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/FreeMarker--2.3-gae"/>
-	<classpathentry kind="output" path=".bin"/>
-</classpath>
diff --git a/.project b/.project
deleted file mode 100644
index 1d35c32..0000000
--- a/.project
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>docgen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-		<nature>org.apache.ivyde.eclipse.ivynature</nature>
-	</natures>
-	<filteredResources>
-		<filter>
-			<id>1435508834672</id>
-			<name></name>
-			<type>10</type>
-			<matcher>
-				<id>org.eclipse.ui.ide.multiFilter</id>
-				<arguments>1.0-projectRelativePath-matches-false-false-build</arguments>
-			</matcher>
-		</filter>
-		<filter>
-			<id>1435508834699</id>
-			<name></name>
-			<type>10</type>
-			<matcher>
-				<id>org.eclipse.ui.ide.multiFilter</id>
-				<arguments>1.0-projectRelativePath-matches-false-false-node_modules</arguments>
-			</matcher>
-		</filter>
-	</filteredResources>
-</projectDescription>
diff --git a/.travis.yml b/.travis.yml
index 2bb7c54..934749b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,13 +16,7 @@
 # under the License.
 
 language: java
-before_install: ant download-ivy
-install: ant all
-
-before_script: ant test
-script:
-  - ant -f test.xml
-  - npm run-script lint
-
 jdk:
-  - oraclejdk8
+  - openjdk8
+script:
+  - mvn clean install
diff --git a/README.md b/README.md
index 941b3b1..2aa762f 100644
--- a/README.md
+++ b/README.md
@@ -11,8 +11,8 @@
 ## Building
 
 Before building for the first time:
-* JDK 8 must be used (tried with 1.8.0_20)
-* Apache Ant must be installed (tried with 1.8.1), and use JDK 8 for building.
+* JDK 8 must be used (tried with 1.8.0_212)
+* Apache Maven must be installed (tried with 3.6.1), and use JDK 8 for building.
 * [Node.js](https://nodejs.org/) must be installed (tried with v10.16.2).
 * Create a `build.properties` file based on `build.properties.sample`
 * Issue `npm install` from the project directory to install Node.js
@@ -32,107 +32,41 @@
 To build Docgen:
 
 ```sh
-ant all
+mvn install
 ```
 
-This will create `lib/docgen.jar` and `build/api`.
-
-For documentation see `build/api/index.html`. Especially, read the
-documentation of the `Transform` class there.
-
 For some examples see:
 * `src/test` and `test.xml` in this project
 * `src/manual` in [the `freemarker` project](https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git)
 * `src/main/docgen` the [`site` project](https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git)
 
 For editing DocBook, we are using [XXE](http://www.xmlmind.com/xmleditor/)
-with the `src/xxe-addon` installed. Unfortunatelly, the free edition of XXE
-was discontinued long ago, but if there are problems with the old free
-version, or you will do serious amount of editing, we can contact XMLmind for
-more free licenses (in exchange for showing their logo on the generated pages).
-
-## Building tricks
-
-### Update dependencies
-
-If you run into dependency errors, you may need to issue:
-
-```sh
-ant update-deps
-```
-
-### Compiling LESS and JS
-
-To compile LESS and JS separately from the regular Ant build, run:
-
-```sh
-ant gulp
-```
-
-### Trying modifications without publishing
-
-If you have modified `docgen` and want to try the new version then we don't
-recomment doing that with Ant, because it's slow and also tricky if you need
-to try it in a dependent project. Instead, see the IDE section later.
-
-But if you must do it with Ant, issue:
-
-```sh
-ant publish-override
-```
-
-This will shadow the `docgen` artifact that comes from the Ivy repo on
-[freemarker.org](http://freemarker.org). Then, in the dependent project
-issue `ant update-deps` so that it picks up your version.
-
-## Eclipse and other IDE-s
-
-### Add project dependencies
-
-You need to run this:
-
-```sh
-ant ide-dependencies
-```
-
-This will create an `ide-dependencies` directory that contains all the jars
-that you have to add to the classpath in the IDE. Note that here we assume
-that you have run the build or at least `ant update-deps` earlier.
-
-You could also use IvyDE instead, with configuration name "IDE", but as the
-dependencies hardly ever change, it's unnecessary.
+with the `src/xxe-addon` installed.
 
 ### Try your modifications
 
 If you want to try your modifications, let's say, by regenerating the
-FreeMarker Manual, don't fiddle with Ant. Just create a Run Configuration in
-Eclipse with main class `org.freemarker.docgen.TransformCommandLine`, then on
-the "Arguments" tab enter "Program arguments" like:
+FreeMarker Manual, just create a Run Configuration in you IDE, with main class
+`org.freemarker.docgen.TransformCommandLine`, then specify these command line
+arguments:
 
     C:\work\freemarker\git\freemarker-2.3-gae\src\manual
     C:\work\freemarker\git\freemarker-2.3-gae\build\manual
     offline=true
 
 To ease comparing outputs, you can set a fixed value for the last
-modification time in the "VM arguments" box be entering something like:
+modification with a java argument like this:
 
-    -Ddocgen.generationTime=2015-12-19T17:00Z
+    -Ddocgen.generationTime=2020-07-15T17:00Z
+
+### Compiling LESS and JS
+
+This happens automatically during build, in the `generate-resources`.
+The generated output is in `target\resources-gulp`.
 
 ## Publishing a new Docgen version
 
-As of this writing, the "docgen" dependency is get by `freemarker` and `site`from the Ivy repo on
-`http://freemarker.org/repos/ivy/`. Those modifying docgen should upload the fresh `docgen.jar`
-there occasonally. For that, first issue:
-
-```sh
-ant server-publish-last-build
-```
-
-This won't actually upload anything, but you will find the directory structure to upload
-in the `build/dummy-server-ivy-repo` directory. See the README file in the
-[site Git repo](https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git)
-on how to upload content to the FreeMarker homepage!
-
+TODO
 
 ## Icon Font Attribution
 
diff --git a/build.properties.sample b/build.properties.sample
deleted file mode 100644
index a78d741..0000000
--- a/build.properties.sample
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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.
-
-# Should point to the rt.jar of Java 8.
-# You may comment this property out, but for releases it should be set,
-# so Java 8 incompatibilities will cause compilation-time errors.
-boot.classpath=C:/Program Files/Java/jdk1.8.0/jre/lib/rt.jar
-
-nodeJsCommand=C:/Program Files/nodejs/node.exe
diff --git a/build.xml b/build.xml
deleted file mode 100644
index b35cf46..0000000
--- a/build.xml
+++ /dev/null
@@ -1,453 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  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 basedir="." default="jar" name="docgen"
-    xmlns:ivy="antlib:org.apache.ivy.ant"
-    xmlns:docgen="http://freemarker.org/docgen"
-    xmlns:u="http://freemarker.org/ant-utils"
-    xmlns:rat="antlib:org.apache.rat.anttasks"
->
-
-  <!-- ================================================================== -->
-  <!-- Properties and filtering                                           -->
-  <!-- ================================================================== -->
-
-  <!-- Ivy project coordinates: -->
-  <property name="moduleOrg" value="org.freemarker" />
-  <property name="moduleName" value="docgen" />
-  <property name="moduleBranch" value="2.0" />
-
-  <!-- Will be overidden on the server: -->
-  <property name="server.ivy.repo.root" value="${basedir}/build/dummy-server-ivy-repo" />
-
-  <!-- Needed for travis-ci build -->
-  <property name="ivy.install.version" value="2.4.0" />
-  <condition property="ivy.home" value="${env.IVY_HOME}">
-      <isset property="env.IVY_HOME" />
-    </condition>
-  <property name="ivy.home" value="${user.home}/.ant" />
-  <property name="ivy.jar.dir" value="${ivy.home}/lib" />
-  <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
-
-  <property file="build.properties" />
-
-  <!-- When boot.classpath is missing, this is the default: -->
-  <property name="boot.classpath" value="${sun.boot.class.path}" />
-  <!-- Checking the correctness of the boot.classpath -->
-  <available classpath="${boot.classpath}"
-    classname="java.lang.Object" ignoresystemclasses="true"
-    property="boot.classpath.correct"
-  />
-
-  <property file="src/main/org/freemarker/docgen/version.properties" />
-
-  <tstamp>
-    <format property="timestamp" pattern="yyyy-MM-dd HH:mm:ss z"
-      timezone="GMT"
-    />
-  </tstamp>
-  <filter token="version" value="${version}" />
-  <filter token="buildTimestamp" value="${timestamp}" />
-
-  <!-- ================================================================== -->
-  <!-- Paths                                                              -->
-  <!-- ================================================================== -->
-
-  <!-- Classpath-es (dependencies) separately for each module -->
-
-  <!-- Needed for purely technical resons... -->
-  <path id="classpath.empty" />
-
-  <!-- ================================================================== -->
-  <!-- Task definitions                                                   -->
-  <!-- ================================================================== -->
-
-  <!--
-    A customized and extended version of the standrad javac task.
-    It copies non-java files (resources).
-  -->
-  <macrodef name="javacAndCopyResources" uri="http://freemarker.org/ant-utils">
-    <attribute name="srcDir" />
-    <attribute name="destDir" />
-    <attribute name="classpath" default="" />
-    <attribute name="classpathRef" default="classpath.empty" />
-    <sequential>
-      <fail unless="boot.classpath.correct"><!--
-        -->The "boot.classpath" property value (${boot.classpath}) <!--
-        -->seems to be an incorrect boot classpath. Please fix it in <!--
-        -->the &lt;projectDir>/build.properties file, or wherever you <!--
-        -->set it.<!--
-      --></fail>
-      <echo level="info">Using boot classpath: ${boot.classpath}</echo>
-
-      <mkdir dir="@{destDir}" />
-
-      <javac
-        srcdir="@{srcDir}"
-        destDir="@{destDir}"
-        deprecation="on"
-        debug="on"
-        source="1.8"
-        target="1.8"
-        classpath="@{classpath}"
-        classpathRef="@{classpathRef}"
-        bootclasspath="${boot.classpath}"
-      />
-
-      <copy todir="@{destDir}" filtering="true" includeEmptyDirs="false">
-        <fileset dir="@{srcDir}">
-          <include name="**/*.properties" />
-        </fileset>
-      </copy>
-      <copy todir="@{destDir}" filtering="false" includeEmptyDirs="false">
-        <fileset dir="@{srcDir}">
-          <exclude name="**/*.java" />
-          <exclude name="**/package.html" />
-          <exclude name="**/overview.html" />
-          <exclude name="**/*.properties" />
-        </fileset>
-      </copy>
-    </sequential>
-  </macrodef>
-
-  <!--
-    A customized version of the standrad javadoc task.
-  -->
-  <macrodef name="javadoc" uri="http://freemarker.org/ant-utils">
-    <attribute name="title" />
-    <attribute name="srcDir" />  <!-- "main" usually -->
-    <attribute name="packageNames" default="*" />
-    <attribute name="excludePackages" default="non.such.package" />
-    <attribute name="destDir" />
-    <attribute name="classpath" default="" />
-    <attribute name="classpathRef" default="classpath.empty" />
-    <sequential>
-      <echo level="info"><!--
-        -->Javadoc generation for: @{title}<!--
-      --></echo>
-
-      <u:provideEmptyDir dir="@{destDir}" />
-      <javadoc
-        sourcepath="@{srcDir}"
-        destdir="@{destDir}"
-        doctitle="@{title}"
-        packagenames="@{packageNames}"
-        excludepackagenames="@{excludePackages}"
-        windowtitle="@{title}"
-        overview="@{srcDir}/overview.html"
-        version="false"
-        author="false"
-        charset="UTF-8"
-        docencoding="UTF-8"
-        locale="en_US"
-        use="yes"
-        failonerror="yes"
-        classpath="@{classpath}"
-        classpathRef="@{classpathRef}"
-      />
-    </sequential>
-  </macrodef>
-
-  <macrodef name="provideEmptyDir" uri="http://freemarker.org/ant-utils">
-    <attribute name="dir" />
-    <sequential>
-      <mkdir dir="@{dir}" />
-      <delete includeEmptyDirs="true">
-        <fileset dir="@{dir}" includes="**/*" defaultexcludes="no" />
-      </delete>
-    </sequential>
-  </macrodef>
-
-
-  <!-- ================================================================== -->
-  <!-- Targets                                                            -->
-  <!-- ================================================================== -->
-
-  <target name="init">
-    <condition property="deps.available">
-      <and>
-        <available file=".ivy" />
-        <available file="node_modules" />
-      </and>
-    </condition>
-    <antcall target="_autoget-deps" />
-  </target>
-
-  <target name="classes" depends="init, gulp"
-    description='Compile + resource copy'
-  >
-    <u:provideEmptyDir dir="build/classes" />
-    <ivy:cachepath pathid="ivy.dep" />
-    <u:javacAndCopyResources
-      srcDir="src/main"
-      destDir="build/classes"
-      classpathref="ivy.dep"
-    />
-  </target>
-
-  <target name="jar" depends="classes"
-      description='Build "build/docgen.jar".'
-  >
-    <mkdir dir="build/artifacts" />
-    <jar jarfile="build/artifacts/docgen.jar">
-      <fileset dir="build/classes" />
-      <manifest>
-        <attribute
-          name="Main-Class"
-          value="org.freemarker.docgen.TransformCommandLine"
-        />
-        <attribute
-          name="Class-Path"
-          value="freemarker.jar jing.jar"
-        />
-        <attribute name="Specification-Version" value="${version}" />
-        <attribute name="Implementation-Version" value="${version}" />
-      </manifest>
-    </jar>
-
-    <mkdir dir="build/lib" />
-    <ivy:retrieve pattern="build/lib/[artifact].[ext]" />
-    <copy file="build/artifacts/docgen.jar" todir="build/lib" />
-  </target>
-
-  <target name="javadoc" depends="init"
-    description="Build the JavaDoc."
-  >
-    <ivy:cachepath pathid="ivy.dep" />
-    <u:javadoc
-      title="Docgen API"
-      srcdir="src/main"
-      destDir="build/api"
-      classpathref="ivy.dep"
-    />
-  </target>
-
-  <target name="all" depends="jar, javadoc"
-    description='Build "docgen.jar" + javadocs'
-  />
-
-  <target name="clean" description='Delete output files.'>
-    <u:provideEmptyDir dir="build" />
-    <delete file="build/docgen.jar" />
-  </target>
-
-  <target name="test" depends="jar">
-    <echo>***************************************</echo>
-    <echo>* Now issue this in the command-line: *</echo>
-    <echo>* ant -f test.xml           *</echo>
-    <echo>***************************************</echo>
-  </target>
-
-  <target name="archive"
-      description='Archives project into the "archive" directory.'>
-    <mkdir dir="archive" />
-    <tstamp>
-      <format property="tstamp" pattern="yyyyMMdd-HHmm" />
-    </tstamp>
-    <delete file="archive/docgen-${tstamp}.tar" />
-    <delete file="archive/docgen-${tstamp}.tar.bz2" />
-    <tar tarfile="archive/docgen-${tstamp}.tar"
-      basedir="."
-      longfile="gnu"
-      excludes="build/** .build/** **/*.class **/*.jar archive/** lib/**"
-    />
-    <bzip2 src="archive/docgen-${tstamp}.tar"
-      zipfile="archive/docgen-${tstamp}.tar.bz2"
-    />
-    <delete file="archive/docgen-${tstamp}.tar" />
-  </target>
-
-  <target name="artifacts" depends="jar"
-    description="Creates the artifacts for Ivy."
-  />
-
-
-  <!-- ================================================================== -->
-  <!-- Dependency management (keep it exactly identical for all projects) -->
-  <!-- ================================================================== -->
-
-  <!-- Needed for travis-ci build -->
-  <target name="download-ivy" unless="offline">
-
-    <mkdir dir="${ivy.jar.dir}"/>
-    <!-- download Ivy from web site so that it can be used even without
-         any special installation -->
-    <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
-         dest="${ivy.jar.file}"
-         usetimestamp="true"/>
-  </target>
-
-
-  <target name="_autoget-deps" unless="deps.available">
-    <antcall target="update-deps" />
-    <antcall target="node-deps" />
-  </target>
-
-  <target name="update-deps"
-    description="Gets the latest version of the dependencies from the Web"
-  >
-    <echo>Getting dependencies...</echo>
-    <echo>-------------------------------------------------------</echo>
-    <ivy:settings id="remote" url="https://freemarker.apache.org/repos/ivy/ivysettings-remote.xml" />
-    <!-- Build an own repository that will serve us even offline: -->
-    <ivy:retrieve settingsRef="remote" sync="true"
-      ivypattern=".ivy.part/repo/[organisation]/[module]/ivy-[revision].xml"
-      pattern=".ivy.part/repo/[organisation]/[module]/[artifact]-[revision].[ext]"
-    />
-    <echo>-------------------------------------------------------</echo>
-    <echo>*** Successfully acquired dependencies from the Web ***</echo>
-    <echo>Eclipse users: Now right-click on ivy.xml and Resolve! </echo>
-    <echo>-------------------------------------------------------</echo>
-    <!-- Only now that we got all the dependencies will we delete anything. -->
-    <!-- Thus a net or repo outage doesn't left us without the dependencies. -->
-
-    <!-- Save the resolution cache from the soon coming <delete>: -->
-    <move todir=".ivy.part/update-deps-reso-cache">
-      <fileset dir=".ivy/update-deps-reso-cache" />
-    </move>
-    <!-- Drop all the old stuff: -->
-    <delete dir=".ivy" />
-    <!-- And use the new stuff instead: -->
-    <move todir=".ivy">
-      <fileset dir=".ivy.part" />
-    </move>
-  </target>
-
-  <!-- Do NOT call this from 'clean'; offline guys would stuck after that. -->
-  <target name="clean-deps"
-    description="Deletes all dependencies"
-  >
-    <delete dir=".ivy" />
-    <delete dir="node_modules" />
-  </target>
-
-  <!-- See README.md about installing node.js and Gulp! -->
-  <target name="node-deps">
-    <exec executable="npm" dir="${basedir}" failonerror="true" osfamily="unix">
-      <arg line="install" />
-    </exec>
-    <exec executable="cmd" dir="${basedir}" failonerror="true" osfamily="windows">
-        <arg line="/c npm install" />
-    </exec>
-  </target>
-
-  <target name="gulp">
-    <exec executable="node" failonerror="true" dir="${basedir}">
-      <arg line="node_modules/gulp/bin/gulp.js"/>
-    </exec>
-
-    <!--
-    <exec executable="${nodeJsCommand}" failonerror="true" dir="${basedir}">
-      <arg value="node_modules/gulp/bin/gulp.js"/>
-    </exec>
-  -->
-  </target>
-
-  <target name="publish-override" depends="artifacts"
-    description="Ivy-publishes THIS project locally as an override"
-  >
-    <ivy:resolve />
-    <ivy:publish
-      pubrevision="${moduleBranch}-branch-head"
-      overwrite="true" forcedeliver="true"
-      resolver="freemarker-devel-local-override"
-    >
-      <artifacts pattern="build/artifacts/[artifact].[ext]" />
-    </ivy:publish>
-    <echo>-------------------------------------------------------</echo>
-    <echo>*** Don't forget to `ant unpublish-override` later! ***</echo>
-  </target>
-
-  <target name="unpublish-override"
-    description="Undoes publish-override (made in THIS project)"
-  >
-    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override/${moduleOrg}/${moduleName}" />
-    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override-cache/${moduleOrg}/${moduleName}" />
-  </target>
-
-  <target name="unpublish-override-all"
-    description="Undoes publish-override-s made in ALL projects"
-  >
-    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override" />
-    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override-cache" />
-  </target>
-
-  <target name="uninstall"
-    description="Deletes external files created by FreeMarker developement"
-  >
-    <delete dir="${user.home}/.ivy2/freemarker-devel-cache" />
-    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override" />
-    <delete dir="${user.home}/.ivy2/freemarker-devel-local-override-cache " />
-  </target>
-
-  <target name="report-deps"
-    description="Creates a HTML document that summarizes the dependencies."
-  >
-    <mkdir dir="build/deps-report" />
-    <ivy:resolve />
-    <ivy:report todir="build/deps-report" />
-  </target>
-
-  <target name="ide-dependencies" description="If your IDE has no Ivy support, this generates ide-lib/*.jar for it">
-    <mkdir dir="ide-dependencies" />
-    <delete includeEmptyDirs="true">
-      <fileset dir="ide-dependencies">
-         <include name="*/**" />
-      </fileset>
-    </delete>
-    <ivy:retrieve pattern="ide-dependencies/[artifact]-[revision].[ext]" />
-  </target>
-
-  <!--
-    This meant to be called on the Continuous Integration server, so the
-    integration builds appear in the freemarker.org public Ivy repository.
-    The artifacts must be already built.
-  -->
-  <target name="server-publish-last-build"
-    description="(For the Continuous Integration server only)"
-  >
-    <delete dir="build/dummy-server-ivy-repo" />
-    <ivy:resolve />
-    <ivy:publish
-      pubrevision="${moduleBranch}-branch-head"
-      overwrite="true" forcedeliver="true"
-      resolver="server-publishing-target"
-    >
-      <artifacts pattern="build/artifacts/[artifact].[ext]" />
-    </ivy:publish>
-  </target>
-
-  <target name="rat" description="Generates Apache RAT report">
-    <ivy:cachepath conf="rat" pathid="ivy.dep" />
-    <taskdef
-      uri="antlib:org.apache.rat.anttasks"
-      resource="org/apache/rat/anttasks/antlib.xml"
-      classpathref="ivy.dep"
-    />  
-    
-    <rat:report reportFile="build/rat-report.txt">
-      <fileset dir="" excludesfile="rat-excludes" />
-    </rat:report>
-    <echo level="info"><!--
-    -->Rat reports were written into build/rat-report.txt<!--
-    --></echo>
-  </target>
-  
-</project>
diff --git a/gulpfile.js b/gulpfile.js
index 59c43dd..c31c731 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -31,8 +31,8 @@
 var concat = require('gulp-concat');
 var headerfooter = require('gulp-headerfooter');
 
-var BASE_DIR = path.join(__dirname, 'src', 'main', 'org', 'freemarker', 'docgen');
-var OUT_DIR = path.join(BASE_DIR, 'statics');
+var BASE_DIR = path.join(__dirname, 'src', 'main', 'resources-gulp', 'org', 'freemarker', 'docgen');
+var OUT_DIR = path.join(__dirname, 'target', 'resources-gulp', 'org', 'freemarker', 'docgen', 'statics');
 
 var copyrightHeader = fs.readFileSync(path.join(__dirname, 'gulp-output-copyright-header.txt'));
 var doNotEditHeader = "/*\n"
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..e32e061
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,143 @@
+<?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/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+    </parent>
+
+    <groupId>org.apache.freemarker.docgen</groupId>
+    <artifactId>freemarker-docgen</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>Apache FreeMarker Docgen</name>
+    <description>Internally used tool to generate HTML from an XDocBook document.</description>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>2.3.30</version>
+        </dependency>
+        <dependency>
+            <groupId>com.thaiopensource</groupId>
+            <artifactId>jing</artifactId>
+            <version>20091111</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>xerces</groupId>
+                    <artifactId>xercesImpl</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xml-apis</groupId>
+                    <artifactId>xml-apis</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <!-- Needed on Java 9+ -->
+            <groupId>xalan</groupId>
+            <artifactId>xalan</artifactId>
+            <version>2.7.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>xml-apis</groupId>
+                    <artifactId>xml-apis</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ant</groupId>
+            <artifactId>ant</artifactId>
+            <version>1.9.3</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <directory>${project.build.directory}/resources-gulp</directory>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>3.0.0</version>
+                <executions>
+                    <execution>
+                        <id>gulp</id>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <phase>generate-resources</phase>
+                        <configuration>
+                            <executable>node</executable>
+                            <arguments>
+                                <argument>node_modules/gulp/bin/gulp.js</argument>
+                            </arguments>
+                            <useMavenLogger>true</useMavenLogger>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>org.freemarker.docgen.TransformCommandLine</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <version>0.13</version>
+                <executions>
+                    <execution>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <excludesFile>rat-excludes</excludesFile>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/rat-excludes b/rat-excludes
index 3e66a63..e3b6765 100644
--- a/rat-excludes
+++ b/rat-excludes
@@ -19,19 +19,19 @@
 # --------
 
 # Files covered in the LICENSE file:
-src/main/org/freemarker/docgen/schema/docbook.rng
-src/main/org/freemarker/docgen/statics/fonts/icomoon.svg
-src/main/org/freemarker/docgen/statics/fonts/icomoon.eot
-src/main/org/freemarker/docgen/statics/fonts/icomoon.ttf
-src/main/org/freemarker/docgen/statics/fonts/icomoon.woff
+src/main/resources/org/freemarker/docgen/schema/docbook.rng
+src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.svg
+src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.eot
+src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.ttf
+src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.woff
 
 # Files without license header that were created in the FreeMarker project:
 package.json
 package-lock.json
-src/main/org/freemarker/docgen/statics/fonts/selection.json
-src/main/org/freemarker/docgen/statics/img/patterned-bg.png
-src/main/org/freemarker/docgen/statics/img/xxe.gif
-src/main/org/freemarker/docgen/statics/img/xxe.png
+src/main/resources/org/freemarker/docgen/statics/fonts/selection.json
+src/main/resources/org/freemarker/docgen/statics/img/patterned-bg.png
+src/main/resources/org/freemarker/docgen/statics/img/xxe.gif
+src/main/resources/org/freemarker/docgen/statics/img/xxe.png
 src/test/1/bat.jpg
 src/test/1/figures/model2sketch.png
 src/test/1/figures/overview.png
diff --git a/src/main/org/freemarker/docgen/BugException.java b/src/main/java/org/freemarker/docgen/BugException.java
similarity index 100%
rename from src/main/org/freemarker/docgen/BugException.java
rename to src/main/java/org/freemarker/docgen/BugException.java
diff --git a/src/main/org/freemarker/docgen/CJSONInterpreter.java b/src/main/java/org/freemarker/docgen/CJSONInterpreter.java
similarity index 100%
rename from src/main/org/freemarker/docgen/CJSONInterpreter.java
rename to src/main/java/org/freemarker/docgen/CJSONInterpreter.java
diff --git a/src/main/org/freemarker/docgen/CollectingErrorHandler.java b/src/main/java/org/freemarker/docgen/CollectingErrorHandler.java
similarity index 100%
rename from src/main/org/freemarker/docgen/CollectingErrorHandler.java
rename to src/main/java/org/freemarker/docgen/CollectingErrorHandler.java
diff --git a/src/main/org/freemarker/docgen/CommandLineExitException.java b/src/main/java/org/freemarker/docgen/CommandLineExitException.java
similarity index 100%
rename from src/main/org/freemarker/docgen/CommandLineExitException.java
rename to src/main/java/org/freemarker/docgen/CommandLineExitException.java
diff --git a/src/main/org/freemarker/docgen/DocBook5Constants.java b/src/main/java/org/freemarker/docgen/DocBook5Constants.java
similarity index 100%
rename from src/main/org/freemarker/docgen/DocBook5Constants.java
rename to src/main/java/org/freemarker/docgen/DocBook5Constants.java
diff --git a/src/main/org/freemarker/docgen/DocgenException.java b/src/main/java/org/freemarker/docgen/DocgenException.java
similarity index 100%
rename from src/main/org/freemarker/docgen/DocgenException.java
rename to src/main/java/org/freemarker/docgen/DocgenException.java
diff --git a/src/main/org/freemarker/docgen/DocgenLogger.java b/src/main/java/org/freemarker/docgen/DocgenLogger.java
similarity index 100%
rename from src/main/org/freemarker/docgen/DocgenLogger.java
rename to src/main/java/org/freemarker/docgen/DocgenLogger.java
diff --git a/src/main/org/freemarker/docgen/DocgenRestrictionsValidator.java b/src/main/java/org/freemarker/docgen/DocgenRestrictionsValidator.java
similarity index 100%
rename from src/main/org/freemarker/docgen/DocgenRestrictionsValidator.java
rename to src/main/java/org/freemarker/docgen/DocgenRestrictionsValidator.java
diff --git a/src/main/org/freemarker/docgen/DocgenValidationOptions.java b/src/main/java/org/freemarker/docgen/DocgenValidationOptions.java
similarity index 100%
rename from src/main/org/freemarker/docgen/DocgenValidationOptions.java
rename to src/main/java/org/freemarker/docgen/DocgenValidationOptions.java
diff --git a/src/main/org/freemarker/docgen/FileUtil.java b/src/main/java/org/freemarker/docgen/FileUtil.java
similarity index 100%
rename from src/main/org/freemarker/docgen/FileUtil.java
rename to src/main/java/org/freemarker/docgen/FileUtil.java
diff --git a/src/main/org/freemarker/docgen/Logo.java b/src/main/java/org/freemarker/docgen/Logo.java
similarity index 100%
rename from src/main/org/freemarker/docgen/Logo.java
rename to src/main/java/org/freemarker/docgen/Logo.java
diff --git a/src/main/org/freemarker/docgen/MessageStreamActivityMonitor.java b/src/main/java/org/freemarker/docgen/MessageStreamActivityMonitor.java
similarity index 100%
rename from src/main/org/freemarker/docgen/MessageStreamActivityMonitor.java
rename to src/main/java/org/freemarker/docgen/MessageStreamActivityMonitor.java
diff --git a/src/main/org/freemarker/docgen/RelaxNGValidator.java b/src/main/java/org/freemarker/docgen/RelaxNGValidator.java
similarity index 100%
rename from src/main/org/freemarker/docgen/RelaxNGValidator.java
rename to src/main/java/org/freemarker/docgen/RelaxNGValidator.java
diff --git a/src/main/org/freemarker/docgen/TableSimplifier.java b/src/main/java/org/freemarker/docgen/TableSimplifier.java
similarity index 100%
rename from src/main/org/freemarker/docgen/TableSimplifier.java
rename to src/main/java/org/freemarker/docgen/TableSimplifier.java
diff --git a/src/main/org/freemarker/docgen/TextUtil.java b/src/main/java/org/freemarker/docgen/TextUtil.java
similarity index 100%
rename from src/main/org/freemarker/docgen/TextUtil.java
rename to src/main/java/org/freemarker/docgen/TextUtil.java
diff --git a/src/main/org/freemarker/docgen/Transform.java b/src/main/java/org/freemarker/docgen/Transform.java
similarity index 100%
rename from src/main/org/freemarker/docgen/Transform.java
rename to src/main/java/org/freemarker/docgen/Transform.java
diff --git a/src/main/org/freemarker/docgen/TransformAntTask.java b/src/main/java/org/freemarker/docgen/TransformAntTask.java
similarity index 100%
rename from src/main/org/freemarker/docgen/TransformAntTask.java
rename to src/main/java/org/freemarker/docgen/TransformAntTask.java
diff --git a/src/main/org/freemarker/docgen/TransformCommandLine.java b/src/main/java/org/freemarker/docgen/TransformCommandLine.java
similarity index 100%
rename from src/main/org/freemarker/docgen/TransformCommandLine.java
rename to src/main/java/org/freemarker/docgen/TransformCommandLine.java
diff --git a/src/main/org/freemarker/docgen/ValidatingDOMBuilder.java b/src/main/java/org/freemarker/docgen/ValidatingDOMBuilder.java
similarity index 100%
rename from src/main/org/freemarker/docgen/ValidatingDOMBuilder.java
rename to src/main/java/org/freemarker/docgen/ValidatingDOMBuilder.java
diff --git a/src/main/org/freemarker/docgen/ValidatingDOMBuilderWithLocations.java b/src/main/java/org/freemarker/docgen/ValidatingDOMBuilderWithLocations.java
similarity index 100%
rename from src/main/org/freemarker/docgen/ValidatingDOMBuilderWithLocations.java
rename to src/main/java/org/freemarker/docgen/ValidatingDOMBuilderWithLocations.java
diff --git a/src/main/org/freemarker/docgen/XMLUtil.java b/src/main/java/org/freemarker/docgen/XMLUtil.java
similarity index 100%
rename from src/main/org/freemarker/docgen/XMLUtil.java
rename to src/main/java/org/freemarker/docgen/XMLUtil.java
diff --git a/src/main/overview.html b/src/main/java/overview.html
similarity index 100%
rename from src/main/overview.html
rename to src/main/java/overview.html
diff --git a/src/main/org/freemarker/docgen/js/make-toc.js b/src/main/resources-gulp/org/freemarker/docgen/js/make-toc.js
similarity index 100%
rename from src/main/org/freemarker/docgen/js/make-toc.js
rename to src/main/resources-gulp/org/freemarker/docgen/js/make-toc.js
diff --git a/src/main/org/freemarker/docgen/js/page-menu.js b/src/main/resources-gulp/org/freemarker/docgen/js/page-menu.js
similarity index 100%
rename from src/main/org/freemarker/docgen/js/page-menu.js
rename to src/main/resources-gulp/org/freemarker/docgen/js/page-menu.js
diff --git a/src/main/org/freemarker/docgen/js/search.js b/src/main/resources-gulp/org/freemarker/docgen/js/search.js
similarity index 100%
rename from src/main/org/freemarker/docgen/js/search.js
rename to src/main/resources-gulp/org/freemarker/docgen/js/search.js
diff --git a/src/main/org/freemarker/docgen/js/use-strict.js b/src/main/resources-gulp/org/freemarker/docgen/js/use-strict.js
similarity index 100%
rename from src/main/org/freemarker/docgen/js/use-strict.js
rename to src/main/resources-gulp/org/freemarker/docgen/js/use-strict.js
diff --git a/src/main/org/freemarker/docgen/less/lib/base.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/base.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/base.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/base.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/bookmarks.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/bookmarks.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/bookmarks.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/bookmarks.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/breadcrumb.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/breadcrumb.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/breadcrumb.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/breadcrumb.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/callout.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/callout.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/callout.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/callout.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/code-block.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/code-block.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/code-block.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/code-block.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/logo.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/logo.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/logo.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/logo.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/marked-text.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/marked-text.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/marked-text.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/marked-text.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/page-menu.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/page-menu.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/page-menu.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/page-menu.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/pagers.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/pagers.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/pagers.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/pagers.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/search-form.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/search-form.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/search-form.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/search-form.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/search-results.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/search-results.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/search-results.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/search-results.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/secondary-tabs.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/secondary-tabs.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/secondary-tabs.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/secondary-tabs.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/social-icons.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/social-icons.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/social-icons.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/social-icons.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/table-of-contents.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/table-of-contents.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/table-of-contents.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/table-of-contents.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/table.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/table.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/table.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/table.less
diff --git a/src/main/org/freemarker/docgen/less/lib/components/tabs.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/components/tabs.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/components/tabs.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/components/tabs.less
diff --git a/src/main/org/freemarker/docgen/less/lib/icons.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/icons.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/icons.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/icons.less
diff --git a/src/main/org/freemarker/docgen/less/lib/layout/content.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/layout/content.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/layout/content.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/layout/content.less
diff --git a/src/main/org/freemarker/docgen/less/lib/layout/footer.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/layout/footer.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/layout/footer.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/layout/footer.less
diff --git a/src/main/org/freemarker/docgen/less/lib/layout/header.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/layout/header.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/layout/header.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/layout/header.less
diff --git a/src/main/org/freemarker/docgen/less/lib/mixins.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/mixins.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/mixins.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/mixins.less
diff --git a/src/main/org/freemarker/docgen/less/lib/utilities.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/utilities.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/utilities.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/utilities.less
diff --git a/src/main/org/freemarker/docgen/less/lib/variables.less b/src/main/resources-gulp/org/freemarker/docgen/less/lib/variables.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/lib/variables.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/lib/variables.less
diff --git a/src/main/org/freemarker/docgen/less/styles.less b/src/main/resources-gulp/org/freemarker/docgen/less/styles.less
similarity index 100%
rename from src/main/org/freemarker/docgen/less/styles.less
rename to src/main/resources-gulp/org/freemarker/docgen/less/styles.less
diff --git a/src/main/org/freemarker/docgen/antlib.properties b/src/main/resources/org/freemarker/docgen/antlib.properties
similarity index 100%
rename from src/main/org/freemarker/docgen/antlib.properties
rename to src/main/resources/org/freemarker/docgen/antlib.properties
diff --git a/src/main/org/freemarker/docgen/schema/docbook.rng b/src/main/resources/org/freemarker/docgen/schema/docbook.rng
similarity index 100%
rename from src/main/org/freemarker/docgen/schema/docbook.rng
rename to src/main/resources/org/freemarker/docgen/schema/docbook.rng
diff --git a/src/main/org/freemarker/docgen/statics/fonts/NOTICE b/src/main/resources/org/freemarker/docgen/statics/fonts/NOTICE
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/fonts/NOTICE
rename to src/main/resources/org/freemarker/docgen/statics/fonts/NOTICE
diff --git a/src/main/org/freemarker/docgen/statics/fonts/icomoon.eot b/src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.eot
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/fonts/icomoon.eot
rename to src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.eot
Binary files differ
diff --git a/src/main/org/freemarker/docgen/statics/fonts/icomoon.svg b/src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.svg
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/fonts/icomoon.svg
rename to src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.svg
diff --git a/src/main/org/freemarker/docgen/statics/fonts/icomoon.ttf b/src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.ttf
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/fonts/icomoon.ttf
rename to src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.ttf
Binary files differ
diff --git a/src/main/org/freemarker/docgen/statics/fonts/icomoon.woff b/src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.woff
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/fonts/icomoon.woff
rename to src/main/resources/org/freemarker/docgen/statics/fonts/icomoon.woff
Binary files differ
diff --git a/src/main/org/freemarker/docgen/statics/fonts/selection.json b/src/main/resources/org/freemarker/docgen/statics/fonts/selection.json
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/fonts/selection.json
rename to src/main/resources/org/freemarker/docgen/statics/fonts/selection.json
diff --git a/src/main/org/freemarker/docgen/statics/img/patterned-bg.png b/src/main/resources/org/freemarker/docgen/statics/img/patterned-bg.png
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/img/patterned-bg.png
rename to src/main/resources/org/freemarker/docgen/statics/img/patterned-bg.png
Binary files differ
diff --git a/src/main/org/freemarker/docgen/statics/img/xxe.gif b/src/main/resources/org/freemarker/docgen/statics/img/xxe.gif
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/img/xxe.gif
rename to src/main/resources/org/freemarker/docgen/statics/img/xxe.gif
Binary files differ
diff --git a/src/main/org/freemarker/docgen/statics/img/xxe.png b/src/main/resources/org/freemarker/docgen/statics/img/xxe.png
similarity index 100%
rename from src/main/org/freemarker/docgen/statics/img/xxe.png
rename to src/main/resources/org/freemarker/docgen/statics/img/xxe.png
Binary files differ
diff --git a/src/main/org/freemarker/docgen/templates/customizations.ftlh b/src/main/resources/org/freemarker/docgen/templates/customizations.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/customizations.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/customizations.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/eclipse-toc.ftlx b/src/main/resources/org/freemarker/docgen/templates/eclipse-toc.ftlx
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/eclipse-toc.ftlx
rename to src/main/resources/org/freemarker/docgen/templates/eclipse-toc.ftlx
diff --git a/src/main/org/freemarker/docgen/templates/footer.ftlh b/src/main/resources/org/freemarker/docgen/templates/footer.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/footer.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/footer.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/google.ftlh b/src/main/resources/org/freemarker/docgen/templates/google.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/google.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/google.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/header.ftlh b/src/main/resources/org/freemarker/docgen/templates/header.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/header.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/header.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/navigation.ftlh b/src/main/resources/org/freemarker/docgen/templates/navigation.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/navigation.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/navigation.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/node-handlers.ftlh b/src/main/resources/org/freemarker/docgen/templates/node-handlers.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/node-handlers.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/node-handlers.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/page.ftlh b/src/main/resources/org/freemarker/docgen/templates/page.ftlh
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/page.ftlh
rename to src/main/resources/org/freemarker/docgen/templates/page.ftlh
diff --git a/src/main/org/freemarker/docgen/templates/sitemap.ftlx b/src/main/resources/org/freemarker/docgen/templates/sitemap.ftlx
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/sitemap.ftlx
rename to src/main/resources/org/freemarker/docgen/templates/sitemap.ftlx
diff --git a/src/main/org/freemarker/docgen/templates/toc-json.ftl b/src/main/resources/org/freemarker/docgen/templates/toc-json.ftl
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/toc-json.ftl
rename to src/main/resources/org/freemarker/docgen/templates/toc-json.ftl
diff --git a/src/main/org/freemarker/docgen/templates/util.ftl b/src/main/resources/org/freemarker/docgen/templates/util.ftl
similarity index 100%
rename from src/main/org/freemarker/docgen/templates/util.ftl
rename to src/main/resources/org/freemarker/docgen/templates/util.ftl
diff --git a/src/main/org/freemarker/docgen/version.properties b/src/main/resources/org/freemarker/docgen/version.properties
similarity index 95%
rename from src/main/org/freemarker/docgen/version.properties
rename to src/main/resources/org/freemarker/docgen/version.properties
index ea53be7..4312e9f 100644
--- a/src/main/org/freemarker/docgen/version.properties
+++ b/src/main/resources/org/freemarker/docgen/version.properties
@@ -15,5 +15,6 @@
 # specific language governing permissions and limitations
 # under the License.
 
-version=0.0.0
+version=0.1.1
+mavenVersion=0.1.1
 buildInfo=@buildTimestamp@