在 Maven 构建期间从 Markdown 文件生成 PDF 文档

zap*_*pee 6 java markdown pdf-generation maven-plugin maven

我有一个带有 Maven Assembly 插件的 Java 项目。Assembly Plugin 构建了一个最终的 ZIP 发布文件,其中包含二进制文件 (*.war)、配置文件和一些 PDF 文档。

这些文档是用 Markdown 编写的,在我使用 Maven 执行构建之前,需要手动生成发布的 PDF 文档(例如,使用Markdown to PDF 在线工具)。然后,Assembly 插件获取 PDF 并将它们放入最终的 ZIP。

几乎每次创建发布 ZIP 文件时,我都会忘记手动生成 PDF,因此通常最终的 ZIP 包含旧文档。这太糟糕了。

我想自动生成 PDF。我已经检查了四个 MD 到 PDF 的 maven 插件,但没有一个工作正常。我找到了一个将 MD 生成为 HTML 的插件(没有任何默认样式表),也许我可以使用另一个插件将 HTML 转换为 PDF,但这太痛苦了。

我试过的:

有没有什么简单的方法可以根据构建过程中的 Markdown 文件使用 Maven 生成 PDF 文件?

小智 1

这样您就可以在 Linux 上生成 pdf,如果您也想在 Windows 上运行它,请添加一个配置文件并在构建时传递该配置文件。

  <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <executions>
                <execution>
                    <id>pandoc</id>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>                            
            </executions>
            <configuration>
                <executable>pandoc</executable>
                <workingDirectory></workingDirectory>
                <arguments>
                    <argument>-o</argument>
                    <argument>README.pdf</argument>
                    <argument>README.md</argument>
                </arguments>
            </configuration>
        </plugin>   
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

跑步:

mvn 执行:执行

依赖项:

apt install -y pandoc texmaker
Run Code Online (Sandbox Code Playgroud)