java - Eclipse:项目版本作为多个文件中的参数

标签 java eclipse version-control

我正在开发一个使用版本控制的项目:

  1. 版本名称在POM文件中输入

  2. 它也用作 to-be-created .msi 的一部分文件名:file_[version].msi

  3. .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/

相关文章:

java - 具有本地内部类的 JUnit 4 测试方法在测试用例之间不一致

java - @CustomFormAuthenticationMechanismDefinition 注释缺失

java - 使用 Eclipse 添加继承方法签名的快速方法

java - Eclipse、Java如何让WindowBuilder创建不嵌套的字段

Git:git push -u origin 来源:master

version-control - Git的替代品?

git - DVCS 如何在大型团队中使用?

java - 通过<%@ include文件向jsp传递参数

java - 为什么我可以把一个8位的十六进制解析成一个Long,再转成一个Integer,却不能直接解析成一个Integer?

c++ - 加载共享库时出错 : libsystemc-2. 3.0.so