Java Maven原型-冒号导致的速度错误
我在创建Maven原型时遇到问题,因为其中一个参考资料中存在冒号字符(“:”)。我有一个包含该符号的Spring XML:Java Maven原型-冒号导致的速度错误,java,maven,maven-3,maven-archetype,maven-resources-plugin,Java,Maven,Maven 3,Maven Archetype,Maven Resources Plugin,我在创建Maven原型时遇到问题,因为其中一个参考资料中存在冒号字符(“:”)。我有一个包含该符号的Spring XML: <property name="maxSize" value="${ws.client.pool.maxSize:5}"/> 启动原型时,我遇到以下错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default
<property name="maxSize" value="${ws.client.pool.maxSize:5}"/>
启动原型时,我遇到以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate
(default-cli) on project standalone-pom:
org.apache.maven.archetype.exception.ArchetypeGenerationFailure: Error merging velocity templates:
Encountered ":5}\"/>\n\t</bean>\n\t\n\t<bean id=\"fooServiceClient\" class=\"org.springframework.aop.framework.ProxyFactoryBean\">\n\t <property name=\"targetSource\" ref=\"fooServiceClientPoolTargetSource\"/>\n\t</bean>\n\n</beans>\n"
at line 15, column 69 of archetype-resources/src/main/resources/spring/library.ws-client.xml
[ERROR] Was expecting one of:
[ERROR] "}" ...
[ERROR] <DOT> ...
[ERROR] "(" ...
[ERROR] -> [Help 1]
[ERROR]
[ERROR]无法执行目标org.apache.maven.plugins:maven原型plugin:2.2:generate
(默认cli)在项目独立pom上:
org.apache.maven.archetype.exception.ArchetypeGenerationFailure:合并velocity模板时出错:
遇到“:5}\”/>\n\t\n\t\n\t\n\t\n\t\n\t\n\n\n”
在archetype resources/src/main/resources/spring/library.ws-client.xml的第15行第69列
[错误]预期出现以下情况之一:
[错误]“}”。。。
[错误]。。。
[错误]“(”。。。
[错误]->[帮助1]
[错误]
我尝试在原型的pom中配置转义角色:
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.0</version>
</plugin>
<!-- Resources configuration -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
<escapeString>\</escapeString>
</configuration>
</plugin>
</plugins>
</pluginManagement>
maven原型插件
2
org.apache.maven.plugins
maven资源插件
2.5
UTF-8
\
但是它仍然不起作用。在这种情况下:
<property name="maxSize" value="${ws.client.pool.maxSize\:5}"/>
错误如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate
(default-cli) on project standalone-pom: org.apache.maven.archetype.exception.ArchetypeGenerationFailure:
Error merging velocity templates:
Encountered "\\" at line 15, column 69 of archetype-resources/src/main/resources/spring/library.ws-client.xml
[ERROR] Was expecting one of:
[ERROR] "}" ...
[ERROR] <DOT> ...
[ERROR] "(" ...
[ERROR] -> [Help 1]
[ERROR]
[ERROR]无法执行目标org.apache.maven.plugins:maven原型plugin:2.2:generate
(默认cli)在项目独立pom上:org.apache.maven.archetype.exception.ArchetypeGenerationFailure:
合并速度模板时出错:
在archetype resources/src/main/resources/spring/library.ws-client.xml的第15行第69列遇到“\\”
[错误]预期出现以下情况之一:
[错误]“}”。。。
[错误]。。。
[错误]“(”。。。
[错误]->[帮助1]
[错误]
有没有关于如何逃逸冒号的想法?我根据速度变量($maxSize)找到了一个解决方案:
#set($maxSize='${ws.client.pool.maxSize:5})
与以下可选属性的弹簧注入代码有相同的错误:
@Value("${hostname:}")
private String hostName;
解决方案:
#set( $dollar = '$' )
@Value("${dollar}{hostname:}")
private String hostName;
关键的一步是将对$constant的引用包装在{curly braces}中,我在使用Spring Boot和Java时也遇到了问题
@Value("${number:0}")
Long number;
Velocity现在有了一种方法,可以使用#[[
和].
符号序列关闭对代码段的解析。这些符号序列之间的任何代码都不会被解析,但仍包含在输出中
/*
#[[
*/
@Value("${number:0}")
Long number;
/*
]]#
*/
符号应该从第一列开始。符号周围需要Java注释,以便Java代码仍然可以编译。您是否尝试过使用最新版本的Yeah,相同的行为…这是可行的,但Java代码将不再编译。velocity的更高版本支持“”。#[[此代码未被解析]]#“”
/*
#[[
*/
@Value("${number:0}")
Long number;
/*
]]#
*/