【问题标题】:Writing POM Version with use of properties file使用属性文件编写 POM 版本
【发布时间】:2012-12-20 12:57:52
【问题描述】:

我想在文本文件中写入 POM 版本和时间戳。

因此,我在 src/main/resources/version 文件夹中创建了一个属性文件:

product.version = ${project.version}

并添加到我的pom.xml:

<resource>
    <directory>${basedir}/src/main/resources/version</directory>
    <filtering>true</filtering>
</resource>

我的输出文本文件是这样说的:

Version = ${project.version}
Timestamp = 277466182879304

我做错了什么?

【问题讨论】:

    标签: java xml maven pom.xml


    【解决方案1】:

    变量名为${project.version},而不是${pom.version}

    [编辑] 可以将旧版本的 m2e 插件配置为在 Eclipse 构建项目时不运行 Eclipse 的资源复制目标。这意味着对于从 Eclipse 启动的单元测试和 main() 方法,资源不会更新,您会看到一些旧值。

    同时确保在从命令行运行 Maven 时强制完全重建项目;否则,Eclipse 会混乱,你会得到奇怪的错误。

    如果您遇到此类问题,请先从命令行运行 Maven,看看是 Maven 还是 m2e(配置)问题。

    下一步是使用Run as.../Maven install 在 Eclipse 中运行 Maven。这将使用 Maven 构建项目,并且不使用 m2e 快捷方式。

    如果这些工作,这是 m2e 的效果,它试图减少一些角落以保持 Eclipse 响应。确保您拥有最新版本的 m2e (1.2.0)。它应该解决这个问题。如果仍然无法正常工作,请提交错误报告。

    这对我有用:version.properties 包含

    version=${project.version}
    timestamp=${build.time}
    

    由于 Maven 3.x 中的一个错误,我必须使用插件来获取正确的构建时间戳:

                       <plugin>
                                <groupId>com.keyboardsamurais.maven</groupId>
                                <artifactId>maven-timestamp-plugin</artifactId>
                                <configuration>
                                        <propertyName>build.time</propertyName>
                                        <timestampPattern>yyyy.MM.dd HH:mm:ss</timestampPattern>
                                </configuration>
                                <executions>
                                        <execution>
                                                <goals>
                                                        <goal>create</goal>
                                                </goals>
                                        </execution>
                                </executions>
                        </plugin>
    

    【讨论】:

    • 输入错误。我有 $(project.version) 但仍然没有得到实际的版本号
    • @dutchman79 应该是 ${project.version} 而不是 $(project.version) - 大括号,而不是圆括号。
    • 你需要用大括号代替大括号。
    • 是的,刚刚在一个问题中看到我的第二个输入错误。但我的错误仍然是一样的。在输出文件中没有写入版本号,但 Version = ${project.version}。这个值仍然没有被写入。
    • 你是用Eclipse的m2e插件还是命令行启动Maven?
    猜你喜欢
    • 2020-11-02
    • 2019-04-08
    • 2015-03-15
    • 1970-01-01
    • 2018-08-09
    • 2015-05-30
    • 2022-01-01
    • 2014-10-22
    • 2019-07-23
    相关资源
    最近更新 更多