首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven资源插件过滤后生成无效的xml。

Maven资源插件过滤后生成无效的xml。
EN

Stack Overflow用户
提问于 2020-10-18 21:14:21
回答 1查看 52关注 0票数 0

我在一个java项目中有很多资源文件。他们中的许多人重复了一些价值观。我决定将所有的值移到application.properties文件中,并在项目构建期间使用maven-资源插件将它们传播到其他文件,如下所示:

代码语言:javascript
复制
<build>
        <filters>
            <filter>
                ${project.basedir}/src/main/resources/application.properties
            </filter>
        </filters>
        <resources>
            <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
<build/>

application.properties文件的内容如下:

代码语言:javascript
复制
email.regexp=^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$

# other properties

例如,假设我在MyXML.xml文件中使用了属性,如下所示:

代码语言:javascript
复制
<composite-id name="id" class="UserID">
    <key-property name="email">
        <column name="email" check="email ~ $$${email.regexp}$$"/>
    </key-property>
</composite-id>
<!--other content-->

正如您所注意到的,email.regexp包含一个符号字符。它是在人物文件中转义的.xml之一。

问题是

  1. 如何在过滤期间配置maven-资源插件以转义.xml资源文件中的人物
  2. 如果maven-资源插件不是管理构建属性的合适位置,那么我应该使用什么工具呢?

执行mvn package后,MyXML.xml的内容如下:

切除结果

代码语言:javascript
复制
<composite-id name="id" class="UserID">
    <key-property name="email">
        <column name="email" check="email ~ $$^[a-zA-Z0-9.!#$%&amp;&apos;*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$$$"/>
    </key-property>
</composite-id>
<!--other content-->

实际效果

代码语言:javascript
复制
<composite-id name="id" class="UserID">
    <key-property name="email">
        <column name="email" check="email ~ $$^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$$$"/>
    </key-property>
</composite-id>
<!--other content-->

任何帮助都是非常感谢的!提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2020-10-18 21:33:54

有一个使用自定义过滤器的解决方案。但是,我认为资源插件足够聪明,能够识别最流行的格式之一并应用转义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64418403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档