Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven原型-冒号导致的速度错误_Java_Maven_Maven 3_Maven Archetype_Maven Resources Plugin - Fatal编程技术网

Java Maven原型-冒号导致的速度错误

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

我在创建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-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;
/*
]]#
*/