0

我想在文本文件中写入 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

我究竟做错了什么 ?

4

1 回答 1

0

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

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

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

如果你有这样的问题,首先从命令行运行 Maven,看看是 Maven 还是 m2e(配置)问题。

下一步是在 Eclipse 中使用Run as.../Maven install. 这将使用 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>
于 2012-12-20T13:01:50.450 回答