使用属性值来设置maven父版本?

时间:2014-05-06 11:08:03

标签: java maven

您好我正在尝试将maven中的父版本设置为属性上定义的版本,但它不起作用

这是我写的

<parent>
    <groupId>com.me.android</groupId>
    <artifactId>me-android</artifactId>
    <version>${tools.version}</version>
    <relativePath>../pom.xml</relativePath>
</parent>
 <properties>
      <tools.version>1.0.0-SNAPSHOT</tools.version>
 <properties>

它不起作用,我必须手动输入版本值,而不是使用属性值。

错误

[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project com.me.android:tools-android-hello:${tools.version} (/Users/me/Work/tools-android/ToolsServer/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not transfer artifact com.me.android:tools-android:pom:${tools.version} from/to releases (http://artifactory/artifactory/releases): Illegal character in path at index 89: http://artifactory/artifactory/releases/com/me/android/tools-android/${tools.version}/tools-android-${tools.version}.pom and 'parent.relativePath' points at wrong local POM @ line 11, column 13 -> [Help 2]

    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
    [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

1 个答案:

答案 0 :(得分:5)

这是一个已知问题。不幸的是,您无法参数化父节。

  

Maven不允许在父元素中的任何元素中指定变量。安装或部署项目时,Maven会将项目的pom.xml复制到本地或远程存储库中。没有对文件进行任何更改。

有关详细说明和可能的解决方法,请参阅此JIRA问题:

http://docs.codehaus.org/display/MAVEN/Automatic+Parent+Versioning

尽管该错误是在2008年录制的,但不幸的是它仍然是当前的问题。看看列出的相关问题,尤其是:

http://jira.codehaus.org/browse/MNG-624

最近更新了。似乎很快就会出现补救措施,但您可以尝试解决方法。