【问题标题】:Replace snapshot with qualifier tycho用限定词 tycho 替换快照
【发布时间】:2014-03-28 12:02:34
【问题描述】:

我正在使用 Tycho(0.19) 构建我的 eclipse 插件。

MENIFEST.MF 我的插件 ID 是 1.0.0.qualifier,在同一个插件的 pom 文件中没有版本,因为 master pom 有版本 1.0.0-SNAPSHOT(即使我也尝试将版本放入插件中但结果相同)

当我运行构建时,我的插件是PLUGIN_NAME.1.0.0.SNAPSHOT.jar

问题: 为什么构建 jar 文件中的 SNAPSHOT 没有替换为时间戳?我错过了什么..?


主 POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my.group</groupId>
    <artifactId>plugin.releng</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <build>
        <plugins>
              <plugin>
                  <groupId>org.eclipse.tycho</groupId>
                  <artifactId>tycho-maven-plugin</artifactId>
                  <version>${tycho-version}</version>
                  <extensions>true</extensions>
              </plugin>
       </plugins>
    </build>

     ....

</project>

插件 POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>my.plugin</artifactId>
  <packaging>eclipse-plugin</packaging>
  <parent>
    <groupId>my.group</groupId>
    <artifactId>plugin.releng</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../plugin.releng</relativePath>
  </parent>
</project>

控制台输出

[INFO] --- tycho-packaging-plugin:0.19.0:build-qualifier (default-build-qualifier) @ my.plugin ---
[INFO] The project's OSGi version is 1.0.0.201403281132
[INFO] 
[INFO] --- tycho-packaging-plugin:0.19.0:validate-id (default-validate-id) @ my.plugin ---
[INFO] 
[INFO] --- tycho-packaging-plugin:0.19.0:validate-version (default-validate-version) @ my.plugin ---
[INFO] 

【问题讨论】:

    标签: java eclipse maven maven-3 tycho


    【解决方案1】:

    jar 文件名由finalName 控制。如果您查看此 jar 中的 Manifest 文件,它将显示正确的合格版本。

    如果您使用插件创建 p2 存储库,它们将包含正确的文件名。

    从 maven 的角度来看,坐标必须与 POM 匹配,因此版本仍然是 -SNAPSHOT。

    【讨论】:

      【解决方案2】:

      我相信@blackbuild 是正确的。

      运行 maven 包以创建 jar 的版本。 SNAPSHOT 版本如下所示:

      • org.XXX-1.0.0-SNAPSHOT.jar

      但是,当您将 SNAPSHOT 部署到存储库时,maven 将设置版本号。它在存储库中将如下所示:

      • org.XXX-1.0.0-20121231.173602-4.jar

      请注意,maven 部署将单词 SNAPSHOT 转换为版本。 见http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html

      【讨论】:

        猜你喜欢
        • 2014-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-23
        • 1970-01-01
        • 1970-01-01
        • 2020-03-27
        • 2019-01-12
        相关资源
        最近更新 更多