|
3 | 3 | link:https://www.graalvm.org/[GraalVM] support for
|
4 | 4 | link:https://freemarker.apache.org/[Apache Freemarker].
|
5 | 5 |
|
| 6 | +NOTE: see xref:#what-it-does[What does this project do] for more information. |
| 7 | + |
6 | 8 | link:CHANGELOG.md[image:https://img.shields.io/badge/changelog-Keep%20a%20Changelog%20v1.1.0-%23E05735[Keep
|
7 | 9 | a Changelog v1.1.0 badge]]
|
8 | 10 | https://central.sonatype.com/artifact/org.fugerit.java/freemarker-native[image:https://img.shields.io/maven-central/v/org.fugerit.java/freemarker-native.svg[Maven
|
@@ -38,9 +40,6 @@ Or link:https://gradle.org/[gradle] one :
|
38 | 40 | implementation("org.fugerit.java:freemarker-native:$freemarkerNativeVersion")
|
39 | 41 | ----
|
40 | 42 |
|
41 |
| -NOTE: This implementation is inspired by |
42 |
| -link:https://quarkus.io/extensions/io.quarkiverse.freemarker/quarkus-freemarker/[quarkus-freemarker]. |
43 |
| - |
44 | 43 | === Build
|
45 | 44 |
|
46 | 45 | For a local build just run :
|
@@ -87,4 +86,29 @@ implementation("org.fugerit.java:freemarker-native:$freemarkerNativeVersion") {
|
87 | 86 | And for link:https://docs.gradle.org/current/userguide/declaring_dependencies.html[Gradle] :
|
88 | 87 |
|
89 | 88 |
|
90 |
| -NOTE: for Gradle, latest version always wins, so if you want a specific versions maybe you will need to set some exclusions. |
| 89 | +NOTE: for Gradle, latest version always wins, so if you want a specific versions maybe you will need to set some exclusions. |
| 90 | + |
| 91 | +[#what-it-does] |
| 92 | +=== What does this project do? |
| 93 | + |
| 94 | +When building with GraalVM a project including link:https://freemarker.apache.org/[Apache FreeMarker], this could lead to errors like : |
| 95 | + |
| 96 | +[source,txt] |
| 97 | +---- |
| 98 | +Error: Class initialization of freemarker.ext.jython.JythonWrapper failed. This error is reported at image build time because class freemarker.ext.jython.JythonWrapper is registered for linking at image build time by command line and command line. Use the option |
| 99 | +
|
| 100 | + '--initialize-at-run-time=freemarker.ext.jython.JythonWrapper' |
| 101 | +---- |
| 102 | + |
| 103 | +This projects include the necessary link:https://github.com/fugerit-org/freemarker-native/blob/main/src/main/resources/META-INF/native-image/org.fugerit.java/freemarker-native/native-image.properties[configuration] and link:https://github.com/fugerit-org/freemarker-native/blob/main/src/main/java/org/fugerit/java/freemarkernative/Log4jOverSLF4JTesterSubstitute.java[Method substitution] to have it build properly. |
| 104 | + |
| 105 | +[#special-thanks] |
| 106 | +=== Special thanks |
| 107 | + |
| 108 | +This project is inspired by the |
| 109 | +link:https://quarkus.io/extensions/io.quarkiverse.freemarker/quarkus-freemarker/[quarkus-freemarker] extension (1). I want to thank Quarkus and Quarkus FreeMarker teams. |
| 110 | + |
| 111 | +The main development tool I used is link:https://www.jetbrains.com/idea/download/[IntelliJ IDEA Ultimate]. |
| 112 | +I want to thank the link:https://www.jetbrains.com/community/opensource/[JetBrains Support for Open-Source Projects program] for providing a license. |
| 113 | + |
| 114 | +NOTE: (1) The main difference between this link:https://github.com/fugerit-org/freemarker-native[FreeMarker native] and link:https://quarkus.io/extensions/io.quarkiverse.freemarker/quarkus-freemarker/[quarkus-freemarker] is that with this project there are only the basic dependencies needed to run link:https://freemarker.apache.org/[Apache Freemarker]. |
0 commit comments