tl; dr:那么,有没有办法移动-D
系统属性的定义并将其内化到pom.xml
文件中?
我们目前正在-Djavax.xml.accessExternalSchema=all
从命令行传递mvn clean install -Djavax.xml.accessExternalSchema=all
以使我的构建工作正常。我无法通过插件(jaxb2-maven-plugin 1.6)中的选项,因为我们使用的版本不支持此版本,而且版本需要完全更改配置,我们无法获得批准为此。
尝试通过在<properties>
标记下添加<project>
<properties>
<javax.xml.accessExternalSchema>all</javax.xml.accessExternalSchema>
</properties>
来设置使用标记的值:
Caused by: org.xml.sax.SAXParseException;
systemId: jar:file:/e:/apache/maven/.m2/repository/com/sun/xml/bind/jaxb-xjc/2.2.7/jaxb-xjc-2.2.7.jar!/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd;
lineNumber: 52; columnNumber: 88; schema_reference:
Failed to read schema document 'xjc.xsd', because 'file' access is not allowed due to restriction set by the accessExternalSchema property.
但我仍然会收到错误(在下面转载),而通过命令行传递则不会。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<goals>
<goal>set-system-properties</goal>
</goals>
<configuration>
<properties>
<property>
<name>javax.xml.accessExternalSchema</name>
<value>all</value>
</property>
</properties>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:7)
是的,您可以使用suggested elsewhere使用Properties Maven plugin,set-system-properties
goal会在initialize
phase期间设置它。
{{1}}
答案 1 :(得分:0)
出于某种原因,这里接受的答案(以及我在网上找到的许多其他解决方案)对我不起作用。
对于具有相同问题的其他人,maven-surefire-plugin
也可能提供解决方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<javax.xml.accessExternalSchema>all</javax.xml.accessExternalSchema>
</systemPropertyVariables>
</configuration>
</plugin>