Reflow Velocity Tools

Velocity tools supporting Reflow Maven skin

License

License

Categories

Categories

Maven Build Tools
GroupId

GroupId

io.github.devacfr.maven.skins
ArtifactId

ArtifactId

reflow-velocity-tools
Last Version

Last Version

2.4.0-beta1
Release Date

Release Date

Type

Type

jar
Description

Description

Reflow Velocity Tools
Velocity tools supporting Reflow Maven skin
Project URL

Project URL

https://devacfr.github.io/reflow-maven-skin/reflow-velocity-tools
Project Organization

Project Organization

Friederich Christophe
Source Code Management

Source Code Management

https://github.com/devacfr/reflow-maven-skin/tree/master/reflow-velocity-tools

Download reflow-velocity-tools

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.devacfr.maven.skins/reflow-velocity-tools/ -->
<dependency>
    <groupId>io.github.devacfr.maven.skins</groupId>
    <artifactId>reflow-velocity-tools</artifactId>
    <version>2.4.0-beta1</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.devacfr.maven.skins/reflow-velocity-tools/
implementation 'io.github.devacfr.maven.skins:reflow-velocity-tools:2.4.0-beta1'
// https://jarcasting.com/artifacts/io.github.devacfr.maven.skins/reflow-velocity-tools/
implementation ("io.github.devacfr.maven.skins:reflow-velocity-tools:2.4.0-beta1")
'io.github.devacfr.maven.skins:reflow-velocity-tools:jar:2.4.0-beta1'
<dependency org="io.github.devacfr.maven.skins" name="reflow-velocity-tools" rev="2.4.0-beta1">
  <artifact name="reflow-velocity-tools" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.devacfr.maven.skins', module='reflow-velocity-tools', version='2.4.0-beta1')
)
libraryDependencies += "io.github.devacfr.maven.skins" % "reflow-velocity-tools" % "2.4.0-beta1"
[io.github.devacfr.maven.skins/reflow-velocity-tools "2.4.0-beta1"]

Dependencies

compile (8)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.30
org.apache.velocity : velocity jar 1.7
org.apache.velocity : velocity-tools jar 2.0
org.apache.maven.doxia : doxia-decoration-model jar 1.9.1
org.apache.maven.doxia : doxia-core jar 1.9.1
org.apache.maven : maven-project jar 2.2.1
com.google.guava : guava jar 28.2-jre
org.jsoup : jsoup jar 1.12.1

provided (1)

Group / Artifact Type Version
com.google.code.findbugs : jsr305 jar 3.0.2

test (12)

Group / Artifact Type Version
org.junit.jupiter : junit-jupiter-api jar
org.junit.jupiter : junit-jupiter-engine jar
org.hamcrest : hamcrest jar 2.2
org.mockito : mockito-core jar 3.2.4
org.mockito : mockito-junit-jupiter jar 3.2.4
com.cloudbees : diff4j jar 1.3
org.apache.maven.doxia : doxia-module-markdown jar 1.9.1
org.slf4j : jul-to-slf4j jar 1.7.30
org.slf4j : jcl-over-slf4j jar 1.7.30
org.slf4j : log4j-over-slf4j jar 1.7.30
ch.qos.logback : logback-core jar 1.2.3
ch.qos.logback : logback-classic jar 1.2.3

Project Modules

There are no modules declared in this project.

Apache License, Version 2.0 Maven Central

Build Status Dev Plan Release Plan

Gitter

Stack Exchange monthly questions

Reflow Maven skin

Reflow is an Apache Maven site skin built on Bootstrap 4. It allows various structural and stylistic customizations to create a modern-looking Maven-generated website and documentatin generation.

To get started and see how the skin looks by default, check out reflow-maven-skin!

News

Reflow Maven skin 2.3.0 is officially out 🎉 .

The header component can now be displayed in 3 different ways:

  • jumbotron - the current rendering (default)
  • banner - display centering banner.
  • custom - use specific html (cdata content of header component) to render the header.

You can also integrate a free content directly (without modification) in body page. The page is composed only header (navbar), body and footer. You can play only with the body content. The content is put as is, Reflow maven skin should not modify this content.

<reflowSkin>
  <pages>
    <index type="body" />
  </pages>
</reflowSkin>

⚠️ Be careful: The cssClass attribute of each component do not override anymore theme and background attribute. you can not write <navbar cssClass="navbar-dark bg-primary border-bottom">, but instead <navbar theme="dark" background="primary" cssClass="border-bottom">.

Read more in the Reflow Maven skin 2.3 Release Notes and changeslog.

Usage

To use this Maven skin, include it in your site.xml file:

<project>
  ...
  <skin>
    <groupId>io.github.devacfr.maven.skins</groupId>
    <artifactId>reflow-maven-skin</artifactId>
    <version>2.3.0</version>
  </skin>
  ...
</project>

The skin requires accompanying Reflow Velocity tools (reflow-velocity-tools) to be available when generating Maven site. Add them as a dependency to maven-site-plugin in your POM file:

<build>
  <plugins>
    ...
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <version>3.7.1</version>
      <dependencies>
        ...
        <dependency>
          <groupId>io.github.devacfr.maven.skins</groupId>
          <artifactId>reflow-velocity-tools</artifactId>
          <version>2.3.0</version>
        </dependency>
        ...
      </dependencies>
      ...
    </plugin>
    ...
  </plugins>
</build>

Configuration

The skin is configurable using the <custom><reflowSkin> element in your site.xml file. Refer to documentation for all configuration options.

A sample configuration file is given below:

<project>
  ...
  <custom>
    <reflowSkin>
      <theme>bootswatch-spacelab</theme>
      <brand>
        <name>My Project</name>
        <href>http://devacfr.github.io/reflow-maven-skin/</href>
      </brand>
      <slogan>Super interesting project doing good things.</slogan>
      <titleTemplate>%2$s | %1$s</titleTemplate>
      <toc>top</toc>
      <navbar filterMenu="Download|reports" />
      <bottomNav>
        <column>Main|Download</column>
        <column>Documentation</column>
        <column>reports|modules</column>
      </bottomNav>
      <bottomDescription>This is a very good project doing interesting
        and valuable things.</bottomDescription>
      <pages>
        <index project="project-id">
          <shortTitle>Welcome</shortTitle>
          <breadcrumbs>false</breadcrumbs>
          <toc>false</toc>
          <sections>
            <carousel />
            <body />
            <sidebar />
            <thumbs>2</thumbs>
            <columns>3</columns>
          </sections>
        </index>
        <developer-info>
          <toc>sidebar</toc>
        </developer-info>
      </pages>
    </reflowSkin>
  </custom>
  ...
</project>

Note that when using <localResources>, you need to provide the necessary local versions of Bootstrap and jQuery files. Reflow skin provides package containing the default web dependencies files in module reflow-default-webdeps. this package should be unpack as following example:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
        <id>unpack</id>
        <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>2.3.0</version>
                    <type>jar</type>
                    <overWrite>false</overWrite>
                    <includes>
                        **/css/bootstrap.min.css, <!-- can be remove if use bootswatch theme-->
                        **/css/fontawesome/*,
                        **/css/fontawesome/webfonts/*,
                        **/css/themes/flaty/*.css, <!-- use flaty bootswatch theme-->
                        **/js/*.js,
                        **/js/languages/*,
                        **/js/styles/github.min.css <!-- use github highlight theme-->
                    </includes>
                </artifactItem>
            </artifactItems>
            <outputDirectory>${main.basedir}/target/site</outputDirectory>
        </configuration>
        </execution>
    </executions>
</plugin>

Note: ${main.basedir} equals to ${session.executionRootDirectory} for relativize url (see Multi-module site documentation)

Bug tracker

Have a bug or a feature request? Please create an issue here on GitHub that conforms with necolas's guidelines.

http://github.com/devacfr/reflow-maven-skin/issues

Contributing

Contributions via GitHub pull requests are gladly accepted from their original author. Along with any pull requests, please state that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.

Compiling

You can compile Reflow project with your local Maven, with Maven Wrapper or with Maven from Docker. The last one is the easiest solution with you don't want install a jdk8.

Maven local

$ mvn clean install -P skipTests -Dtoolchains.disabled=true

Maven Wrapper

$ ./mvnw clean install -Dtoolchains.disabled=true

Maven from Docker

$ ./mvnd clean install

The profile skipTests allows to skip all tests execution.

Use the parameter toolchains.disabled to disable maven toolchains plugin whether you are not configure your ${HOME}/.m2/toolchains.xml file. Here is a example of ${HOME}/.m2/toolchains.xml

<?xml version="1.0" encoding="UTF8"?>
<toolchains>
  <!-- JDK toolchains -->
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.8</version>
    </provides>
    <configuration>
      <jdkHome>/usr/lib/jvm/java-8-openjdk-amd64</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>9</version>
    </provides>
    <configuration>
      <jdkHome>/usr/lib/jvm/jdk-9.0.4</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

Site Generation

Use following command to generate site.

$ ./ci/site-generate.sh

Site Run

Use following command to generate and run site.

$ ./ci/site-run.sh

Site Deployment

Use following command to generate and deploy site.

$ ./ci/site-deploy.sh

Author

Andrius Velykis

Christophe Friederich

Copyright and license

Copyright 2012-2019 Christophe Friederich

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or 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.

Versions

Version
2.4.0-beta1
2.3.0
2.2.0
2.1.0
2.0.2
2.0.1
2.0.0
2.0.0-beta2
2.0.0-beta1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3