Maven配置文件,使用hibernate配置文件进行资源过滤

时间:2014-06-06 08:34:34

标签: java hibernate maven

我正在尝试使用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&amp;UseUnicode=true&amp;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中,我已经&&amp;一起逃跑了。当我从url中删除查询参数时,它按预期工作,如何从pom文件中转义&符号?

1 个答案:

答案 0 :(得分:0)

我不确定它会解决你的问题。 但是,您可以查看以下网址: - http://maven.apache.org/guides/introduction/introduction-to-profiles.html

或者这个: -

http://www.manydesigns.com/en/portofino/portofino3/tutorials/using-maven-profiles-and-resource-filtering

它被精美地解释了。 我无法获得评论,这就是我回答的原因。