jbake
jbake copied to clipboard
Maven plugin: include freemarker, asciidoc, snakeyml and other optional dependency by default
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.