Java based open source static site/blog generator for developers & designers.

Overview

JBake

JBake is a Java based open source static site/blog generator for developers.

GitHub Release Download Maven Download Homebrew Download

Build Status Appveyor Status Coverage Status

Gitter Chat

Documentation

Full documentation is available on jbake.org.

Contributing

We welcome all contributions to the project both big and small. From new features, bug reports to even spelling mistake corrections in the documentation. Please don’t hesitate to submit an issue.

The Contributing guide provides information on how to submit an issue or create a pull request to fix a bug or add a new feature to JBake.

Versioning

The project has adopted the Semantic Versioning spec from v2.2.0 onwards to maintain an understandable backwards compatibility strategy.

The version format is as follows:

<major>.<minor>.<patch>-<label>
  • An increment of the major version represents incompatible API changes.

  • An increment of the minor version represents additional functionality in a backwards-compatible manner.

  • An increment of the patch version represents backwards-compatible bug fixes.

  • Existence of a label represents a pre-release or build metadata.

Community

Talk to the developers behind JBake:

Talk to other users of JBake on the forum:

Docker Image

The image uses the official adoptopenjdk/openjdk11:alpine image for building a distribution of JBake and adoptopenjdk/openjdk11:alpine-jre for runtime.

Build

To build the Docker image:

$ docker build -t jbake/jbake:latest .

Usage

To execute JBake via Docker run this from project directory:

$ docker run --rm -u jbake -v "$PWD":/mnt/site jbake/jbake:latest

This command will execute using the jbake user to avoid running as root and will mount the current working directory as /mnt/site in the Docker container where JBake is expecting your project files to be. By default the Docker image will execute a bake -b only.

If you want to bake and serve your project using the Docker image then you’ll need to override the default command:

$ docker run --rm -u jbake -v "$PWD":/mnt/site -p 8820:8820 jbake/jbake:latest -b -s

This command will also expose port 8820 from the container, you’ll also need to set the following option in your jbake.properties file:

server.hostname=0.0.0.0
Note
Docker image timezone is UTC. This may affect the date and time expected in output content. To set different timezone, add TZ environment variable and set value to required timezone. Example - docker run --rm -u jbake -e TZ=America/New_York -v "$PWD":/mnt/site jbake/jbake:latest

Build System

The project uses Gradle 4.9+ as the build system. To build the JBake distribution ZIP file execute the following command from the root of the repo:

$ ./gradlew distZip

This will build a ZIP file in the /build/distributions folder.

For more information see Test, Build and Deploy

Coding conventions

The project uses a basic set of checkstyle rules to keep the Code in shape.

We configured the gradle checkstyle Plugin to run with the check task. It does not break the build if convention violations are found. But prints a warning and generates a report.

For more information see Test, Build and Deploy

Setup Intellij

  • Install checkstyle-idea plugin

    Settings → Plugins → CheckStyle-IDEA

  • Configure

    Settings → Other Settings → Checksytle

    Add a new Configuration File. Enter a Description like "jbake Checkstyle" and choose "Use a local Checkstyle file". The checkstyle File is located at the project root path config/checkstyle/checkstyle.xml

  • Add to Editor Code Style Scheme

    Settings → Editor → Code Style

    Click the gear Symbol besides the "Scheme:" drop-down.

    Import Scheme → Checkstyle Configuration

    Pick the project checkstyle file config/checkstyle/checkstyle.xml

Licensed under the MIT License, see the LICENSE file for details.

Comments
  • JBake fails to run or build on Apple Silicon

    JBake fails to run or build on Apple Silicon

    Hi there

    Thank you for JBake – I have been using it since June 2015 (that is when I get the urge to write something pithy at Code is Mandatory)

    Recently I started using a MacBook Air (with Apple M1 Silicon) for processing and unfortunately JBake does not run or build on Apple M1 Silicon. It works fine on Apple Intel.

    Exceptions and references to the underlying issue are listed below.

    Digging in it is appears to be an issue with OrientDB.

    As a result of nosing around and to solve this itch, I have started work on removing the dependency of OrientDB and using JDBC and Groovy Sql with the implementation done in SQLite.

    The work is ongoing on a “Prototype PR” type branch that is really rough as guts at the moment.

    Exceptions caused trying to run

    $ jbake -b
    JBake v2.7.0-rc.2 (2021-05-24 22:30:41[GMT+01:00] 045c61c#) [http://jbake.org]
    
    14:02:31.341 INFO  org.jbake.app.Oven - Baking has started...
    Warning: Nashorn engine is planned to be removed from a future JDK release
    14:02:31.485 INFO  c.o.common.jna.ONative - Default limit of open files (512) will be used.
    14:02:31.518 INFO  c.o.common.jna.ONative - 17179869184 B/16384 MB/16 GB of physical memory were detected on machine
    14:02:31.518 INFO  c.o.common.jna.ONative - Detected memory limit for current process is 17179869184 B/16384 MB/16 GB
    14:02:31.519 INFO  c.o.o.c.e.OMemoryAndLocalPaginatedEnginesInitializer - JVM can use maximum 4096MB of heap memory
    14:02:31.519 INFO  c.o.o.c.e.OMemoryAndLocalPaginatedEnginesInitializer - Because OrientDB is running outside a container 12% of memory will be left unallocated according to the setting 'memory.leftToOS' not taking into account heap memory
    14:02:31.519 INFO  com.orientechnologies - OrientDB auto-config DISKCACHE=10,321MB (heap=4,096MB os=16,384MB)
    14:02:31.519 INFO  c.o.o.c.e.l.OEngineLocalPaginated - System is started under an effective user : `mark`
    14:02:31.520 INFO  c.o.o.c.e.l.OEngineLocalPaginated - Allocation of 156879 pages.
    14:02:31.529 ERROR jbake - An unexpected error occurred: /private/var/folders/43/bt5j2vf520v6n9gnx968cs840000gn/T/jna-3344077/jna5212213165608407388.tmp: dlopen(/private/var/folders/43/bt5j2vf520v6n9gnx968cs840000gn/T/jna-3344077/jna5212213165608407388.tmp, 1): no suitable image found.  Did find:
    	/private/var/folders/43/bt5j2vf520v6n9gnx968cs840000gn/T/jna-3344077/jna5212213165608407388.tmp: no matching architecture in universal wrapper
    	/private/var/folders/43/bt5j2vf520v6n9gnx968cs840000gn/T/jna-3344077/jna5212213165608407388.tmp: no matching architecture in universal wrapper
    mhbmacxiv jbake (master) $
    

    Exceptions caused trying to run tests

    GroovyTemplateEngineRenderingTest > renderTags FAILED
        org.gradle.internal.exceptions.DefaultMultiCauseException: Multiple Failures (3 failures)
        	java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native
        	java.lang.NullPointerException: Can't set default locale to NULL
    

    Related Git Hub Issues

    Test failures on Apple silicon (aarch64) #1323 Add darwin-aarch64 support #1297 Enable building jna for Darwin arm64 #1238 Support for Apple silicon #20 Fix variadic arguments on arm64 darwin ABI #577 Enable Strict Type Enforcement for Dynamic Method Dispatching

    Software environment

    # uname -a
    Darwin mhbmacxiv 20.5.0 Darwin Kernel Version 20.5.0: Sat May  8 05:10:31 PDT 2021; root:xnu-7195.121.3~9/RELEASE_ARM64_T8101 arm64
    
    # sw_vers
    ProductName:	macOS
    ProductVersion:	11.4
    BuildVersion:	20F71
    
    # java --full-version
    openjdk 11.0.11+9-LTS
    
    
    # jbake version (running lastest snapshot)
    JBake v2.7.0-rc.2 (2021-05-24 22:30:41[GMT+01:00] 045c61c#) [http://jbake.org]
    
    # jbake version (trying to build)
    $ git log | head
    commit 109b7c1379b907172acfee7815d945d3c1c5c51b
    Merge: 045c61c 5829541
    Author: Jonathan Bullock <[email protected]>
    Date:   Tue Jun 8 22:48:33 2021 +0100
    
        Merge pull request #707 from jonbullock/fix/692-template-folders
    
        Fix to allow templates to be stored in folders
    
    
    opened by mhberger 45
  • Move to Java 8 for v2.5.0 or v3.0.0

    Move to Java 8 for v2.5.0 or v3.0.0

    By its nature JBake is a standalone tool installed on an individual machine that generates static output that is pushed to the server. So there's little worry about runtime requirements other than in the build tools themselves. Java 7 is reaching end-of-maintenance (or whatever Oracle calls it) and Java 8 offers significant improvements.

    I see no reason not to move to Java 8 for v2.5.0, but at the very least v3.0.0 should use it (and skip Java 7)

    This issue started out as a comment on Issue #107, but I thought it should be a new, separate issue. Java 8 has been adopted very rapidly in the 16 months since that issue was created and we should consider moving to it as quickly as possible.

    enhancement 
    opened by msgilligan 28
  • [WIP] migrate build to gradle

    [WIP] migrate build to gradle

    I started a migration from maven to gradle based on issue #276

    Covered so far:

    • [x] assembly
    • [x] application distribution
    • [x] local maven publishing with code signing
    • [x] codecoverage with jacoco and publishing to coveralls

    This is a work in progress. It shows the possibility to transform the maven build to gradle in a modularized way of configuration.

    In the center is the main build.gradle file which is the root entry point for the build and handles the configuration of the dependencies for the project as well codecoverage with jacoco.

    Running gradlew jacocoTestReport or the abbreviation gradlew jTR runs the tests and creates a test report which could be found afterward at build/reports/jacoco/test/html/.

    It applies the coveralls gradle plugin to send the collected test data from jacoco to the coveralls webservice in combination with running the test reports.

    See .travis.yml on how it is used in combination with travis-ci.

    Furthermore it applies two local build scripts.

    • gradle/application.gradle
    • gradle/maven-publishing.gradle

    The first is for bundling a distribution zip file.

    It uses the gradle application plugin to define the main entry point of the jbake cli and generate the appropriate run scripts for unix/linux and windows. It uses grgit to clone the jbake example projects, bundle them and put them into the distribution package.

    Executing gradlew distZip assembles the distribution package which could be found at build/distributions/jbake-2.5.0-SNAPSHOT.zip

    To test the bundle you can execute gradlew installDist It creates the distribution and places it unzipped into build/install.

    Here is an example of how the structure looks like:

    tree build/install/jbake/
    build/install/jbake/
    ├── bin
    │   ├── jbake
    │   └── jbake.bat
    ├── example_project_freemarker.zip
    ├── example_project_groovy.zip
    ├── example_project_thymeleaf.zip
    └── lib
        ├── args4j-2.0.26.jar
        ├── asciidoctorj-1.5.2.jar
        ├── asm-4.1.jar
        ├── asm-analysis-4.1.jar
        ├── asm-tree-4.1.jar
        ├── asm-util-4.1.jar
        ├── attoparser-1.3.jar
        ├── commons-collections-3.2.1.jar
        ├── commons-configuration-1.9.jar
        ├── commons-io-2.4.jar
        ├── commons-jexl-2.1.1.jar
        ├── commons-lang-2.6.jar
        ├── commons-lang3-3.1.jar
        ├── commons-logging-1.1.1.jar
        ├── commons-vfs2-2.0.jar
        ├── concurrentlinkedhashmap-lru-1.3.1.jar
        ├── freemarker-2.3.20.jar
        ├── groovy-2.4.1.jar
        ├── groovy-templates-2.4.1.jar
        ├── groovy-xml-2.4.1.jar
        ├── hamcrest-core-1.1.jar
        ├── jade4j-0.4.2.jar
        ├── javassist-3.16.1-GA.jar
        ├── javax.servlet-3.0.0.v201112011016.jar
        ├── jbake-core-2.5.0-SNAPSHOT.jar
        ├── jcommander-1.35.jar
        ├── jetty-continuation-8.1.12.v20130726.jar
        ├── jetty-http-8.1.12.v20130726.jar
        ├── jetty-io-8.1.12.v20130726.jar
        ├── jetty-server-8.1.12.v20130726.jar
        ├── jetty-util-8.1.12.v20130726.jar
        ├── jna-4.0.0.jar
        ├── jna-platform-4.0.0.jar
        ├── jruby-complete-1.7.16.1.jar
        ├── json-simple-1.1.1.jar
        ├── jul-to-slf4j-1.7.6.jar
        ├── junit-4.10.jar
        ├── logback-classic-1.1.1.jar
        ├── logback-core-1.1.1.jar
        ├── logging
        │   └── logback.xml
        ├── maven-scm-api-1.4.jar
        ├── maven-scm-provider-svn-commons-1.4.jar
        ├── maven-scm-provider-svnexe-1.4.jar
        ├── ognl-3.0.6.jar
        ├── orient-commons-1.6.4.jar
        ├── orientdb-core-1.6.4.jar
        ├── orientdb-nativeos-1.6.4.jar
        ├── parboiled-core-1.1.6.jar
        ├── parboiled-java-1.1.6.jar
        ├── pegdown-1.4.2.jar
        ├── plexus-utils-1.5.6.jar
        ├── regexp-1.3.jar
        ├── slf4j-api-1.7.7.jar
        ├── snappy-0.3.jar
        ├── thymeleaf-2.1.3.RELEASE.jar
        ├── thymeleaf-extras-conditionalcomments-2.1.1.RELEASE.jar
        └── unbescape-1.0.jar
    

    The second build script is for the maven stuff.

    It defines a custom POM description and defines two additional artifacts. A sources jar and javadoc jar which get published along the main jar file.

    Executing gradlew install publishes the jar's to your local maven repository.

    tree ~/.m2/repository/org/jbake/jbake-core/2.5.0-SNAPSHOT/
    /home/frank/.m2/repository/org/jbake/jbake-core/2.5.0-SNAPSHOT/
    ├── jbake-core-2.5.0-SNAPSHOT.jar
    ├── jbake-core-2.5.0-SNAPSHOT-javadoc.jar
    ├── jbake-core-2.5.0-SNAPSHOT.pom
    ├── jbake-core-2.5.0-SNAPSHOT-sources.jar
    ├── jbake-core-2.5.0-SNAPSHOT.tar
    ├── jbake-core-2.5.0-SNAPSHOT.zip
    ├── maven-metadata-local.xml
    ├── maven-metadata-sonatype-nexus-snapshots.xml
    ├── _maven.repositories
    └── resolver-status.properties
    

    It has a signing task to sign the artifacts based on the condition that the current version is a release Version (does not end with -SNAPSHOT) and has a uploadArchives task present.

    Which is currently not the case. That is one of the open points I will discuss in a moment.

    As you can see the basics are working.

    I had to change the way how the base path to locate the example projects is determined in the FileUtil class as the core jar is living besides the other libs in a lib/ directory relative to the distribution root directory. But it works. The application is working as expected.

    So far so good.

    There are some open tracks.

    • [x] remote ~~maven~~ bintray publishing
    • [x] binary distibution publishing

    Currently the library is published to maven central if I get it right. It is no problem to configure maven publish to upload the archive to maven central. There is also a bintray plugin for publishing to bintray maven repositories. Which is my preferred target for library and binary distribution.

    The question is, what does @jonbullock and the community want?

    Thats a matter of taste. We can play around while sorting things out. One reason to open a WIP pull request ;)

    I used the standard maven plugin for the maven part. There is also an incubating maven-publish plugin which is probably better suited for the remote publishing stuff.

    I have not sorted out how to apply the migration process now. The proposal to wait until the open pull requests are applied is maybe the best idea.

    At the end it is only a matter of changing and adding possible dependencies and its versions and copy the gradle build files to the project.

    Oh. I forgot. I had to move the test resources into a relative directory to get the tests pass. So all the test fixtures are now within src/test/resources/fixture. There is some integration work to do as this.getClass().getResource("/") which is be used in the Tests does not point to the right directory during the tests.

    See 48e3cb8

    That is all for now.

    task 
    opened by ancho 26
  • AsciiDoc table of contents is not rendered

    AsciiDoc table of contents is not rendered

    A AsciiDoc table of contents is not generated, when :toc: is used.

    See http://asciidoctor.org/docs/user-manual/#user-toc.

    JBake version is 2.2.1-SNAPSHOT, 7be8a72022e6b7f908ba2e5386ec5affccd10c98

    affects:v2.3.2 affects:v2.2.1 support 
    opened by lefou 25
  • refactoring of jbake configuration

    refactoring of jbake configuration

    I started to refactor the configuration of jbake and it's components. See #340.

    In general it's finished. But I want to write some more tests and add some logging in case options could not be found and things like that.

    There are only two classes left with a direct dependency to a CompositeConfiguration, which are configuration specific classes.

    Please take your time to review the changes. I hope you like it.

    enhancement 
    opened by ancho 22
  • How to support Chinese character?

    How to support Chinese character?

    I have just downloaded the 2.3.0, created a sample with "-i", and modified the "fourth-post.adoc" with Chinese characters. Then I got the following errors while baking it.

    r:\Test>d:\DevTools\jbake-2.3.0\jbake
    JBake v2.3.0 (2014-05-11 15:50:07PM) [http://jbake.org]
    
    22:25:55.414 INFO  org.jbake.app.Oven - Baking has started...
    22:25:55.452 INFO  org.jbake.app.Crawler - Processing [.\content\about.html]...  : new
    22:25:55.460 INFO  org.jbake.app.Crawler - Processing [.\content\blog\2013\first-post.html]...  : new
    22:25:55.466 INFO  org.jbake.parser.AsciidoctorEngine - Initializing Asciidoctor engine...
    22:25:58.507 INFO  org.jbake.parser.AsciidoctorEngine - Asciidoctor engine initialized.
    org.jruby.exceptions.RaiseException: (ArgumentError) invalid byte sequence in UTF-8
            at org.jruby.RubyRegexp.match(org/jruby/RubyRegexp.java:1539)
            at org.jruby.RubyString.match(org/jruby/RubyString.java:1758)
            at RUBY.parse_block_metadata_line(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor/lexer.rb:1866)
            at RUBY.parse_block_metadata_lines(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor/lexer.rb:1830)
            at RUBY.next_section(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor/lexer.rb:254)
            at RUBY.parse(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor/lexer.rb:52)
            at RUBY.initialize(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor/document.rb:329)
            at RUBY.load(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor.rb:805)
            at RUBY.render(jar:file:D:/DevTools/jbake-2.3.0/lib/asciidoctor-java-integration-0.1.4.jar!/gems/asciidoctor-0.1.4/lib/asciidoctor.rb:879)
            at RUBY.render(<script>:55)
            at org.jruby.gen.InterfaceImpl1214299472.render(org/jruby/gen/InterfaceImpl1214299472.gen:13)
    
    bug 
    opened by flyisland 18
  • Prevent image source path from breaking

    Prevent image source path from breaking

    This change prevents image source path from breaking. It prefixes content rootpath to the image sources.

    It excludes the sources that starts with http:// or https:// or /.

    If image source starts with './' i.e. image is in the same folder as content, then it will replace ./ with content directory path and then adds the rootpath.

    Once image source is fixed, it should not break, no matter from where content is accessed i.e. index or individual page.

    enhancement plugin-candidate 
    opened by manikmagar 17
  • Images from content folder are not copied to output folder

    Images from content folder are not copied to output folder

    I've just started using jbake and have the next issue. It is very convenient to have adoc files and related images collocated in the same folder. E.g nice github rendering feature is supported out of the box. Also, atom editor, asciidocfx support image rendering when they are in the same folder.

    But, jbake does not copy images from content folder to output folder. I've been using default settings.

    Could you please clarify if this issue can be fixed via some settings? Or it is require jbake modification?

    enhancement 
    opened by halyph 15
  • Introduced Groovy MarkupTemplateEngine

    Introduced Groovy MarkupTemplateEngine

    The Template Engine is registered for template files with suffix '.tpl' It is basically a clone of GroovyTemplateEngine using the Groovy MarkupTemplateEngine.

    Because there are refactoring pull-requests out there, I skipped refactoring those two Engines for now.

    To unify the Renderer Tests for different TemplateEngines there is a new Spock-Test called RendererSpec.

    enhancement 
    opened by ancho 15
  • added weld / CDI

    added weld / CDI

    Added JBoss weld (http://weld.cdi-spec.org/) for CDI support

    why:

    • no static var problem in tests
    • code gets testable
    • future code can now use CDI to decouple stuff ( e.g. melix modularization code could use this )

    did:

    • added weld as CDI
    • removed static code from ConfigUtil
    • changed Tests so no static reset needed
    • added mockito as dependency will be usedfull for nice test ( e.g. http://docs.mockito.googlecode.com/hg/org/mockito/InjectMocks.html )
    • all changes from https://github.com/jonbullock/JBake/pull/71 ( becuase i'm lazy, not per se necessary )
    opened by RainerW 15
  • Honor nested path in tagspath

    Honor nested path in tagspath

    This is a first cut on fixing #563. Looking on feedback on where to actually put the utility method to calculate relative path.

    Why:

    • when using a path like /blogs/tags for tag.path result in wrong content root. its always ../

    This change addreses the need by:

    • move utility method to calculate relative root to a place that can be shared
    • call this method during tags generation.

    TODO: the getPathToRoot should honor uirExtension prefix.

    Fixes #563

    bugfix 
    opened by maxandersen 14
  • Replace markdown renderer with commonmark-java renderer?

    Replace markdown renderer with commonmark-java renderer?

    The markdown parser we are using, is based on commonmark-java:

    • https://github.com/commonmark/commonmark-java

    Is it possible to replace the JBake markdown renderer in the configuration properties?

    org.jbake.parser.MarkdownEngine=md
    

    by programming our own renderer based on MarkupEngine and configuring it through our own properties file (for example setting a new argument in the command line call)?

    opened by axkr 0
  • Plugin System implmentation

    Plugin System implmentation

    I need to include/generate meta-data automatically. For example from relative locations of the markup file:

    • blog/2021/03/my-post.md may produce date (year and month) for this file.
    • blog/java/graalvm/a-post-about-graalvm.md may add (java and graalvm) as tags or categories..
    • I may choose to replace javascript frameworks, like syntax highlights with static processor before going through template processor (not sure if the current implementation, is actually using javascript).

    These functionality is great candidate for plugins. I was looking at this document "Plugin System", and thought it might be what I was looking for or at least close. The idea is to have pre-processor and post-processor.

    Pre-processor chain can be added between Cralwer.java and ContentStore.java. I may find time and try to extend ContentStore.java as a prototype to see how that works. Post-processor chain, I have no idea as I didn't look into the source code closely yet, but I know I will need a way to avoid processing the content through the markup to allow post-processor to handle them.

    If anyone has a better idea, please share.

    opened by malakeel 0
  • Fix java.lang.UnsatisfiedLinkError thrown on Apple M1

    Fix java.lang.UnsatisfiedLinkError thrown on Apple M1

    This fixes java.lang.UnsatisfiedLinkError thrown by jbake-maven-plugin 2.7.0-rc.6 on Apple's M1 hardware (see #769).

    The problem was caused by an older version of JRuby (a dependency of AsciidoctorJ) that does not support macos-aarch64. By upgrading AsciidoctorJ to the latest version, a newer version of JRuby supporting M1 is used, and java.lang.UnsatisfiedLinkError is no longer thrown.

    Fixes #769.

    opened by jmp 1
  • jbake-maven-plugin: No exclusions of direct dependencies supported in Maven

    jbake-maven-plugin: No exclusions of direct dependencies supported in Maven

    According to https://github.com/jbake-org/jbake/tree/master/jbake-maven-plugin#dependencies

    However, if you want your build to only download the bare minimum it needs, you can use to exclude the dependencies you don’t need.

    Exclusions in Maven plugins can only be applied on transitive dependencies, not on direct ones (compare with https://issues.apache.org/jira/browse/MNG-6222), so it isn't possible to exclude any of the direct ones from https://github.com/jbake-org/jbake/blob/master/jbake-maven-plugin/build.gradle#L41-L51.

    opened by kwin 0
  • An API incompatibility was encountered while executing org.jbake:jbake-maven-plugin:2.7.0-rc.6:generate: java.lang.UnsatisfiedLinkError

    An API incompatibility was encountered while executing org.jbake:jbake-maven-plugin:2.7.0-rc.6:generate: java.lang.UnsatisfiedLinkError

    When running the maven plugin on Mac OS (12.6 with Apple Silicon M1 Pro) I encounter the following error

    [ERROR] Failed to execute goal org.jbake:jbake-maven-plugin:2.7.0-rc.6:generate (default-generate) on project sling-site: Execution default-generate of goal org.jbake:jbake-maven-plugin:2.7.0-rc.6:generate failed: An API incompatibility was encountered while executing org.jbake:jbake-maven-plugin:2.7.0-rc.6:generate: java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: Unable to execute or load jffi binary stub from `/var/folders/f8/_3c0rvgd00n324sqjc8y_3wr0000gn/T/`. Set `TMPDIR` or Java property `java.io.tmpdir` to a read/write path that is not mounted "noexec".
    [ERROR] Can't load library: /Users/konradwindszus/git/sling/sling-site/jffi15806522402867392943.dylib
    [ERROR] 	at com.kenai.jffi.internal.StubLoader.tempLoadError(StubLoader.java:448)
    [ERROR] 	at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:433)
    [ERROR] 	at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:300)
    [ERROR] 	at com.kenai.jffi.internal.StubLoader.<clinit>(StubLoader.java:511)
    [ERROR] 	at java.base/java.lang.Class.forName0(Native Method)
    [ERROR] 	at java.base/java.lang.Class.forName(Class.java:398)
    [ERROR] 	at com.kenai.jffi.Init.load(Init.java:68)
    [ERROR] 	at com.kenai.jffi.Foreign$InstanceHolder.getInstanceHolder(Foreign.java:50)
    [ERROR] 	at com.kenai.jffi.Foreign$InstanceHolder.<clinit>(Foreign.java:46)
    [ERROR] 	at com.kenai.jffi.Foreign.getInstance(Foreign.java:104)
    [ERROR] 	at com.kenai.jffi.Platform$ArchHolder.determineCPU(Platform.java:210)
    [ERROR] 	at com.kenai.jffi.Platform$ArchHolder.<clinit>(Platform.java:197)
    [ERROR] 	at com.kenai.jffi.Platform.getCPU(Platform.java:311)
    [ERROR] 	at com.kenai.jffi.Platform.addressMask(Platform.java:345)
    [ERROR] 	at com.kenai.jffi.MemoryIO.<clinit>(MemoryIO.java:46)
    [ERROR] 	at com.orientechnologies.common.directmemory.OPointer.createNativeBuffer(OPointer.java:57)
    [ERROR] 	at com.orientechnologies.common.directmemory.OPointer.getNativeByteBuffer(OPointer.java:31)
    [ERROR] 	at com.orientechnologies.common.directmemory.OByteBufferPool.acquireDirect(OByteBufferPool.java:145)
    [ERROR] 	at com.orientechnologies.orient.core.storage.memory.ODirectMemoryOnlyDiskCache$MemoryFile.addNewPage(ODirectMemoryOnlyDiskCache.java:501)
    [ERROR] 	at com.orientechnologies.orient.core.storage.memory.ODirectMemoryOnlyDiskCache$MemoryFile.access$200(ODirectMemoryOnlyDiskCache.java:463)
    [ERROR] 	at com.orientechnologies.orient.core.storage.memory.ODirectMemoryOnlyDiskCache.allocateNewPage(ODirectMemoryOnlyDiskCache.java:245)
    [ERROR] 	at com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationBinaryTracking.commitChanges(OAtomicOperationBinaryTracking.java:534)
    [ERROR] 	at com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.endAtomicOperation(OAtomicOperationsManager.java:338)
    [ERROR] 	at com.orientechnologies.orient.core.storage.impl.local.paginated.atomicoperations.OAtomicOperationsManager.executeInsideAtomicOperation(OAtomicOperationsManager.java:165)
    [ERROR] 	at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.create(OAbstractPaginatedStorage.java:667)
    [ERROR] 	at com.orientechnologies.orient.core.db.OrientDBEmbedded.internalCreate(OrientDBEmbedded.java:768)
    [ERROR] 	at com.orientechnologies.orient.core.db.OrientDBEmbedded.create(OrientDBEmbedded.java:640)
    [ERROR] 	at com.orientechnologies.orient.core.db.OrientDB.createIfNotExists(OrientDB.java:269)
    [ERROR] 	at com.orientechnologies.orient.core.db.OrientDB.createIfNotExists(OrientDB.java:256)
    [ERROR] 	at org.jbake.app.ContentStore.startup(ContentStore.java:95)
    [ERROR] 	at org.jbake.app.Oven.bake(Oven.java:160)
    [ERROR] 	at org.jbake.maven.GenerateMojo.reRender(GenerateMojo.java:81)
    [ERROR] 	at org.jbake.maven.GenerateMojo.executeInternal(GenerateMojo.java:74)
    [ERROR] 	at org.jbake.maven.GenerateMojo.execute(GenerateMojo.java:70)
    
    
    opened by kwin 3
Releases(v2.7.0-rc.6)
Owner
JBake
JBake is a Java based, open source, static site/blog generator for developers and designers.
JBake
Log4j-payload-generator - Log4j jndi injects the Payload generator

0x01 简介 log4j-payload-generator是 woodpecker框架 生产log4 jndi注入漏洞payload的插件。目前可以一键生产以下5类payload。 原始payload {[upper|lower]:x}类型随机混payload {[upper|lower]:x}

null 469 Dec 30, 2022
OpenApi Generator - REST Client Generator

Quarkus - Openapi Generator Welcome to Quarkiverse! Congratulations and thank you for creating a new Quarkus extension project in Quarkiverse! Feel fr

Quarkiverse Hub 46 Jan 3, 2023
A personal blog based on Vue+SpringBoot+MySql+Redis+Shiro+JWT

项目:Vue-SpringBoot-PersonalBlog 个人博客网址:http://www.huchao.vip/blogs CSDN:毛_三月 介绍 一个基于SpringBoot + Vue+MybatisPlus+Shiro+JWT+Redis开发的前后端分离博客项目,带有超级详细开发文档

Chao. Hu 26 Dec 20, 2022
Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project.

MagOKO Stack Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project. License Copyright 2021-present

DeepInThink Community 10 Jun 1, 2021
🦄 Best beautiful java blog, worth a try

Tale Blog Tale's English meaning for the Story, I believe that every person who insists on writing a blog is a story; Chinese you call it Collapse doe

Tale Blog System 4.8k Dec 30, 2022
A simple blog post api made with spring,mysql.Following tutorial by @FadatareRamesh(Java Guides)

blogAPI A simple blog post api made with spring,mysql.Following tutorial by @FadatareRamesh(Java Guides) Frontend server(made using Angular) can be fo

null 1 Feb 2, 2022
Spring MVC backend written in Java for my wiki/blog

blog-api Spring MVC backend written in Java for my wiki/blog. Why Spring? Spring MVC and other parts of the Spring framework are still immensely popul

null 0 Mar 16, 2022
Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Application for creating blog posts, developed with Java using Spring Framework for backend and Angular along with PrimeNG Library for frontend development.

Áureo Carmelino 10 Nov 27, 2022
This is a Maven plugin designed to help developers automatizing the creation of code classes from YML files based on AsyncApi and OpenAPI.

SCS MultiApi Maven Plugin This is a Maven plugin designed to help developers automatizing the creation of code classes from YML files based on AsyncAp

Corunet 0 Dec 20, 2022
Escrevendo Testes para o Blog Pessoal

Implementando testes com o Spring Testing no Blog Pessoal Nesta atividade iremos implementar os testes nas Camadas Model, Repository e Controller da C

Rafael Queiróz 13 Dec 12, 2022
Projeto Base - Spring Security - Blog Pessoal

Implementando a Camada de Segurança com o Spring Security no Blog Pessoal Nesta atividade iremos implementar a camada de segurança da aplicação com o

Rafael Queiróz 10 Aug 9, 2021
A blog recipes API for you to share and search for food recipes

A blog recipes API for you to share and search for food recipes

java dojo 3 Apr 15, 2022
ReDoSHunter: A Combined Static and Dynamic Approach for Regular Expression DoS Detection

ReDoSHunter ReDoSHunter is a combined static and dynamic approach for regular expression DoS detection. LATEST NOTE (updated at 2021.09.13): ReDoSHunt

Yeting Li 43 Dec 23, 2022
The MeterRegistryHolder class is designed to hold MeterRegistry as a static field.

MeterRegistryHolder The MeterRegistryHolder class is designed to hold MeterRegistry as a static field. Goal The goal is to simplify using MeterRegistr

Tomasz Fijałkowski 4 Sep 20, 2022
Alibaba Cloud Dedicated KMS Transfer SDK for Java can help Java developers to migrate from the KMS keys to the Dedicated KMS keys.

Alibaba Cloud Dedicated KMS Transfer SDK for Java Alibaba Cloud Dedicated KMS Transfer SDK for Java can help Java developers to migrate from the KMS k

Alibaba Cloud 3 May 12, 2022
My solutions for the MongoDB for Java Developers course

Welcome to M220J Disclaimer: The dependencies and versions in this project are not maintained. This project is intended for educational purposes and i

Salih Candir 3 Jun 26, 2022
RR4J is a tool that records java execution and later allows developers to replay locally.

RR4J [Record Replay 4 Java] RR4J is a tool that records java execution and later allows developers to replay locally. The tool solves one of the chall

Kartik  kalaghatgi 18 Dec 7, 2022
A compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.

Flowable (V6) Maven Central: Docker Images: License: Homepage: https://www.flowable.org/ flowable / flowəb(ə)l / a compact and highly efficient workfl

Flowable 6k Jan 7, 2023
These samples explore the different options that Spring Boot developers have for using Javascript and CSS on the client (browser) side of their application.

Table of Contents Getting Started Narrowing the Choices Create a New Application Webjars Show Me Some Javascript Normalizing Resource Paths Adding Tab

Dave Syer 18 Jul 29, 2022