2

我正在尝试使用 Maven在我的包文件中获取Mercurial changeSetchangeSetDate设置。MANIFEST.MFOSGi

我已将其添加buldnumber-maven-plugin到我的pom.xml

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
        <execution>
            <phase>validate</phase>
            <goals>
                <goal>hgchangeset</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <doCheck>false</doCheck>
        <doUpdate>true</doUpdate>
    </configuration>
</plugin>

我的捆绑插件看起来像这样:

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
        <archive>
            <manifestEntries>
                <Build-Change-Set>${changeSet}</Build-Change-Set>
                <Build-Change-Set-Date>${changeSetDate}</Build-Change-Set-Date>
                <Build-Location>${basedir}</Build-Location>
                <Build-Machine>${env.COMPUTERNAME}</Build-Machine>
                <Build-Date>${maven.build.timestamp}</Build-Date>
            </manifestEntries>
        </archive>
        <instructions>
            <!-- All imports, exports, etc... -->
        </instructions>
    </configuration>
</plugin>

当我执行install目标时,我看到Maven输出:

[INFO] --- buildnumber-maven-plugin:1.0:hgchangeset (default) @ esb-security ---
[INFO] Setting Mercurial Changeset: 6524595b0389+
[INFO] Setting Mercurial Changeset Date: 2012-09-05 11:38 +0100

但在我的MANIFEST.MF我得到:

Build-Change-Set: ${changeSet}
Build-Change-Set-Date: ${changeSetDate}

它不包括变更集和变更集数据的值。也许有人知道问题出在哪里?

4

2 回答 2

0

除非 maven-bundle-plugin 明确支持 ${changeSet} 等表达式变量,否则在此插件执行之前,Maven 不会解析它们。因此,您可能必须在 process-resources 阶段之前使用单独执行 manifest 任务绑定,然后使用 Maven 的资源过滤支持对生成的 manifest 进行后处理并替换 maven-bundle-plugin 设置的那些变量。

于 2012-10-09T19:04:14.510 回答
0

也许如果您将 hgchangeset 目标的阶段更改为“初始化”,它将在 Manifest 文件创建之前发生?

或者,您可以在资源文件夹中创建一个存根 MF 文件并使用过滤来进行变量替换,尽管 felix 应该能够为您执行此操作。

于 2015-03-03T19:26:22.607 回答