Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
3.0, 3.5.3
-
None
Description
If you use a property in proxy port of settings.xml, the property is not replaced and the port number is "0" instead of property value.
My minimal demo about this problem is here.
In my demo, export two environment variables as follows.
export MAVEN_PROXY_HOST_STRING=proxy.foo.com export MAVEN_PROXY_PORT_INT=18080
These variables are used in settings.xml for proxy settings.
<proxy> <id>my_proxy</id> <active>true</active> <protocol>http</protocol> <host>${env.MAVEN_PROXY_HOST_STRING}</host> <port>${env.MAVEN_PROXY_PORT_INT}</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy>
Execute maven-help-plugin to show effective settings.xml.
mvn help:effective-settings -X
The result is as follows.
<proxy> <port>0</port> <host>proxy.foo.com</host> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> <id>my_proxy</id> </proxy>
`${env.MAVEN_PROXY_HOST_STRING}` is replaced with `proxy.foo.com`,
but `${env.MAVEN_PROXY_PORT_INT}` is not replaced with `18080`.
I found the following WARNING message in console.
[WARNING] Some problems were encountered while building the effective settings [WARNING] Unable to parse element 'port', must be an integer (position: END_TAG seen ...<port>${env.MAVEN_PROXY_PORT_INT}</port>... @12:47) caused by: java.lang.NumberFormatException: For input string: "${env.MAVEN_PROXY_PORT_INT}" @ /root/.m2/settings.xml, line 12, column 47
I think that the cause of this problem is to parse settings.xml before interpolation.