使用Maven构建时,运行时缺少jaxb.properties
我有一个项目,我想使用一个由JAXB从XSD生成的一组类。 有了这些类,我想从XML和JSON中编组/取消编组。
我已经发现我需要Moxy Eclipselink来做我需要的事情。 我测试了我的类和进程作为Ant项目,然后我决定将其移交给Maven以便更好地管理。
但是,似乎在运行时无法识别jaxb.properties文件。
我的项目有一个用于对象的Maven工件,以及另一个用于逻辑/处理的工件。 我一直在试着找出jaxb.properties的位置,以便可以读取它。
我努力了
对象项目
/src/main/resources/jaxb.properties /src/main/java/[namespace]/jaxb.properties
逻辑项目
/src/main/resources/jaxb.properties /src/main/java/[namespace]/jaxb.properties
但是,当我尝试获取我的JAXBContext的类名时,我仍然得到:
class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl
如果我通过指定以下JVM选项来修改我的运行设置:
-Djavax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
我明白了:
class org.eclipse.persistence.jaxb.JAXBContext
在两个项目中,我都在pom.xml中指定了它
src/main/resources **/*.properties
如果我看一下JAR,我会在那里看到jaxb.properties。
现在我很困惑。
例如,在maven中的java类
src\main\java\com\example\sitemap\generate\domain
和文件jaxb.properties
src\main\resources\com\example\sitemap\generate\domain\jaxb.properties