当前位置: 首页 > 知识库问答 >
问题:

Maven原型:字符串替换不起作用

岳均
2023-03-14

我正在建立一个maven原型。文件名替换也正常工作。例如,我有一个名为__artifactd__-log4j.xml的文件,当生成该文件时,将被替换。但是,其中一个xml文件(引用它的spring上下文文件)没有被替换:

<?xml version="1.0" encoding="UTF-8"?>

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">



<context:annotation-config />


<bean id="log4jConfigurer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass" value="org.springframework.util.Log4jConfigurer"></property>
    <property name="targetMethod" value="initLogging"></property>
     <property name="arguments">
     <list>
        <value>classpath:${artifactId}-log4j.xml</value>
        <value>5000</value>
     </list>
  </property>
</bean>

由于某种原因,xml文件中的标记${artifactId}从未被替换。我的原型-metadata.xml

 <modules>
<module id="${rootArtifactId}-services" dir="__rootArtifactId__-services" name="${rootArtifactId}-services">
  <fileSets>
    <fileSet filtered="true" packaged="true" encoding="UTF-8">
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.java</include>
      </includes>
    </fileSet>
    <fileSet filtered="true" encoding="UTF-8">
      <directory>src/main/webapp</directory>
      <includes>
        <include>**/*.jsp</include>
        <include>**/*.xml</include>
      </includes>
    </fileSet>
    <fileSet filtered="true" encoding="UTF-8">
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
    </fileSet>
  </fileSets>
</module>

spring-file在src/main/resources下,既然fileSet被设置为filtered,它应该被velocity替换,对吗?

有什么想法吗?

共有1个答案

汪典
2023-03-14

您是否尝试使用${project.artifactid}?根据Maven参考书,所有项目属性都具有project前缀。

 类似资料:
  • 问题内容: 我最初尝试使用运算符分配值,但返回了错误,然后尝试使用 : 和 但是它正在返回原始价值。 提供有关如何正确使用替换API以获得正确结果的帮助。还有其他任何可用的API可以代替 。 在正在从用户采取的 是由用户的频率串被输入。这个问题几乎不涉及我想知道我是否使用了错误的API变量,因为它为我提供了不变的输出, 我们是否可以使用 从字符串中返回一个字符 来定义API的子字符串。我使用 最大

  • 问题内容: 我正在尝试将Google App Engine与Maven一起用于基于Spring的简单应用程序。我发现有一种适用于这种Web应用程序的Maven原型(没有Spring,但是我可以自己添加):Maven GAE。 因此,我使用了以下命令: 但是,当我尝试使用“ mvn gae:run”时,它不起作用,而且我不知道如何解决此缺失的要求: 可以补充一点,我尝试使用不同版本的maven-ga

  • 问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要

  • 我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。

  • 本文向大家介绍DOS(bat)字符串替换原理,包括了DOS(bat)字符串替换原理的使用技巧和注意事项,需要的朋友参考一下 把字符串 “c:/test/1”  中的  “/” 全部替换成 “//”  的原理: (假设 "C:/TEST/1” 字符串已存在 VAR 变量中:) C:/WINDOWS>set "var=C:/TEST/1" (将 var 变量中的字符串里 "/" 字符全部替换成 "//

  • 问题内容: 我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么? 问题答案: 更改 至: Java中的字符串被设计为不可变的。 这就是为什么不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。 此外,如果你想简单地替换文字,不需要正则表达式的语法支持使