我正在开发一个使用版本控制的项目:
版本名称在POM文件中输入
它也用作
to-be-created .msi
的一部分文件名:file_[version].msi
从
.msi
安装此项目后,它在服务名称中使用 这些参数保存在如下位置:a)
.properties
文件为Spring param: version=0340
b) 在 pom.xml
<package-version>0340</package-version>
c) 作为
<filename><version>.wxs
文件,由build.xml
使用d) 也在上述
.wxs
中文件为MsiProductVersion = "3.4.0"
(注意点)
有没有办法在其他config
中定义参数文件,这将使用正确的数据填充这些文件,以便将版本仅保留在一处。现在很容易忽视一个param
,并构建 340.msi
将显示 330 Service
正如它的名字一样。我发现这很困难,因为并非所有文件都属于一个模型(例如 Spring
)。
最佳答案
您可以配置 Maven 以替换资源中的“变量”。将其添加到您的 POM 中:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
现在您可以使用 ${project.version}
,它将替换为 src/main/resources
和 下面所有文件中 POM 中的版本>src/test/resources
.
对于其他文件,您可以使用嵌入的 Ant task in your POM或者编写一个小脚本(Ant、bash,无论您喜欢什么)来读取 POM 并从模板创建其他三个文件。
另一个选择是编写一个单元测试来读取所有文件并确保它们包含正确的值。这样,版本不会自动更新,但是a)版本不会经常更改(这可能会导致您的问题)并且b)测试比您在脚本中可以执行的功能强大得多(它们可以,例如,读取和更新二进制文件)。
关于java - Eclipse:项目版本作为多个文件中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777219/