我正在尝试使用maven配置文件实例化hibernate配置文件。我的配置文件位于src/main/resources
下,在pom文件中我标记了要在资源过滤中使用的文件夹。有趣的是,我可以从属性文件加载相同的属性,而hibernate在解析配置文件时抛出异常。这是我正在使用的代码示例。
POM - 资源过滤
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
文件结构
src/main/resources/hibernate.cfg.xml
src/main/resources/hibernate.properties
Maven dev个人资料
<profile>
<id>dev</id>
<properties>
<hibernate.connection.url>jdbc:mysql://localhost:3306/example_schema?zeroDateTimeBehavior=convertToNull&UseUnicode=true&characterEncoding=utf8</hibernate.connection.url>
</properties>
</profile>
Hibernate配置文件示例
<property name="hibernate.connection.url">${hibernate.connection.url}</property>
属性文件样本
hibernate.config.file = ${hibernate.config.file}
当我运行我的应用程序时,我看到属性文件中填充了正确的值;但是hibernate配置文件会抛出以下解析异常。
Caused by: org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2155)
并从相同的堆栈跟踪
The reference to entity "UseUnicode" must end with the ';' delimiter. Nested exception: The reference to entity "UseUnicode" must end with the ';' delimiter.
但是在pom中,我已经&
与&
一起逃跑了。当我从url中删除查询参数时,它按预期工作,如何从pom文件中转义&符号?
答案 0 :(得分:0)
我不确定它会解决你的问题。 但是,您可以查看以下网址: - http://maven.apache.org/guides/introduction/introduction-to-profiles.html
或者这个: -
它被精美地解释了。 我无法获得评论,这就是我回答的原因。