在 pom.xml 中设置 JVM 参数的一般方法独立于所使用的插件

问题描述 投票:0回答:1

我有一个 Maven 项目,它通过使用 XSLT 转换在

org.codehaus.mojo.xml-maven-plugin
(版本 1.0.2)的帮助下生成代码。

但是,运行时它超出了 XPath 运算符限制 100:

JAXP0801002: the compiler encountered an XPath expression containing '101' operators that exceeds the '100' limit set by 'FEATURE_SECURE_PROCESSING'.

我知道我可以通过在命令行上设置

-Djdk.xml.xpathExprOpLimit=500
来解决这个问题。但是有没有办法在 pom.xml 的一般位置设置它?

我知道像surefire这样的一些插件有这种可能性。但是那些没有的插件呢?有没有办法在 POM 中实现这一点,而不必在每次运行时在命令行上指定它?

Apache Maven 3.6.3
Java version: 11.0.19, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64

完整的 POM 文件可以在这里找到:https://github.com/david-gibbs-ig/quickfixj/blob/9eff0b69f90ef205ace736bc7fa32784fe3185f3/quickfixj-base/pom.xml#L75

相关部分:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>xml-maven-plugin</artifactId>
    <executions>
        <execution>
        <id>extractRequiredFields</id>
        <phase>generate-sources</phase>
        <goals>
            <goal>transform</goal>
        </goals>
        <configuration>
            <transformationSets>
                <transformationSet>
                    <dir>${project.basedir}/../quickfixj-orchestration/target/generated-resources</dir>
                    <outputDir>${project.build.directory}/generated-resources/extracted</outputDir>
                    <includes>
                        <include>${orchestra.file}</include>
                    </includes>
                    <stylesheet>${project.basedir}/src/main/xsl/extractRequiredFields.xsl</stylesheet>
                </transformationSet>
            </transformationSets>
        </configuration>
    </execution>
</plugin>
maven xslt maven-plugin maven-mojo
1个回答
0
投票

不完全是我在最初的问题中所要求的,但我现在通过在

.mvn/jvm.config
文件中设置所需的选项实现了类似的目标。该文件被签入存储库并在签出时检索,因此 Maven 会考虑该文件,而无需更改用户的环境。

© www.soinside.com 2019 - 2024. All rights reserved.