jbake icon indicating copy to clipboard operation
jbake copied to clipboard

Maven plugin: include freemarker, asciidoc, snakeyml and other optional dependency by default

Open ge0ffrey opened this issue 3 years ago • 0 comments

Our maven plugin configuration looks like this:

    <plugin>
        <groupId>org.jbake</groupId>
        <artifactId>jbake-maven-plugin</artifactId>
        <version>0.3.6-rc.2</version>
        ...
        <dependencies>
          <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj</artifactId>
            <version>2.4.3</version>
          </dependency>
          <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
          </dependency>
          <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.28</version>
          </dependency>
        </dependencies>
      </plugin>

This is:

  • verbose to set up (getting started experience)
  • a PITA and error-prone when upgrading the jbake-maven-plugin version: we have to upgrade transitive dependency versions manually and figure out the right version through looking at pom data. It's too easy to use the incorrect version and have JBake x running with a too low version of asciidoctorj etc.

Proposal A) In the maven dependency plugin add all the optional dependencies of jbake-core as non-optional dependencies. You can define the maven versions in the jbake-parent pom, so the maven plugin doesn't have to repeat the actual versions.

ge0ffrey avatar Jun 04 '21 11:06 ge0ffrey