pom表达式版本警告,或不同版本的错误

时间:2015-11-17 20:33:52

标签: tycho p2

我们的OSGi / RCP应用程序使用包含带有2个配置文件的pom文件的外部项目:非p2构建(打包jar)的一个默认配置文件和p2构建的一个配置文件(打包eclipse-plugin)。

在eclipse中将该项目集成到RCP工作区时,将使用p2配置文件,因此项目使用清单。

pom看起来像这样:

<project ...>
    <groupId>group-id</groupId>
    <artifactId>project-id</artifactId>
    <version>${project.version}</version>
    <packaging>${project.packaging}</packaging>
    . . .

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <project.packaging>jar</project.packaging>
                <project.version>4.0.brabchintextformat-SNAPSHOT</util.version> 
            </properties>
        . . .
        <profile>
            <id>p2</id>
            <activation>
                <file><exists>../p2</exists></file>
            </activation>
            <properties>
                <project.packaging>eclipse-plugin</project.packaging>
                <project.version>0.0.0-SNAPSHOT</project.version>
                <tycho-version>0.24.0</tycho-version>
                <p2-repo-url>http://download.eclipse.org/releases/mars/</p2-repo-url>
            </properties>
            . . .

并且MANIFEST.MF的版本为0.0.0.qualifier

使用该设置调用mvn install有效,但它警告该版本不是常量:

'version' contains an expression but should be a constant
  • 备选方案1:不要使用version属性,并尝试在pom和manifest中使用相同的常量。但这是不可能的,因为将设置为常量的版本号格式不符合OSGi的版本号方案。

  • 备选方案2:在p2配置文件中定义tycho.versions.plugin, 并在构建之前设置版本。我不喜欢那样因为它 强制可能错误提交的项目的本地更新 并推送到存储库。

  • 备选方案3:使用单独的pom文件(pom-p2.xml):但事实并非如此 因为eclipse不允许将其作为maven项目导入。

  • 备选方案4:使用tycho.pomless插件:这不起作用 因为如果pom.xml文件存在,它会使用它(没有 'ignorePOM'标志)。

有什么建议吗?

0 个答案:

没有答案