在pom.xml文件中包含每用户配置

时间:2014-04-28 09:44:17

标签: java maven

我正在使用Java / Maven项目。 我的Maven版本是#34; Apache Maven 2.2.1(rdebian-10)"。

我需要在构建项目时定义一些自定义配置。当您使用各种配置标志(configure --this --that)配置项目时,我习惯于C项目,然后构建会相应地执行configure脚本定义/找到的参数。

我需要使用Java / Maven项目模拟此功能,配置系统可以,但是在给定文件中隔离用户特定参数也应该没问题。例如,我希望能够在pom.xml包含的文件中定义每个用户特定的配置(例如custom.pom.xml)。例如,在我的项目中,我需要指定程序写入临时文件的路径等。

我的问题是,是否可以隔离pom.xml包含的文件中的每用户特定配置,和/或使用Maven项目处理此问题的自定义方式是什么?

现在我提交了一个pom.xml.template文件,需要将其重命名为pom.xml并使用特定于用户的参数进行编辑,但这很麻烦,因为当Maven要求发生变化时(例如,如果添加了新的依赖项)开发人员必须更新他的pom.xml文件。这是我的pom.xml.template文件中的相关片段:

<profiles>
    <profile>
        <id>production</id>
        <properties>
            <database.url>jdbc:postgresql://localhost:5432/myProject</database.url>
            <database.user>myProject</database.user>
            <database.password>myProjectPassword</database.password>
            <repository_path>my/project/repo/path</repository_path>
            <external_tool_bin_path>/absolute/path/to/tool/</external_tool_bin_path>
            <external_scripts_path>/path/to/scripts/</external_scripts_path>
            <tmpdir>tmp</tmpdir>
        </properties>
        <build>
            <finalName>myProject</finalName>
        </build>
    </profile>

[...]

外部工具和脚本位于每个用户的特定路径中(取决于系统/安装)。

另一种方法是为每个开发人员使用不同的配置文件,这在不同的方面很尴尬(因为我不想在提交的pom.xml文件中对用户配置文件进行硬编码)。

或者我可以编写一个配置脚本,但这看起来有点过分,而且不是很便携,除非我想要求用户依赖MinGW或类似的。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我建议您使用maven profiles和每用户配置,保留为从pom的配置文件中引用为${env.PARAMETER}的环境变量。
您必须指示用户根据需要设置其环境。

这样,您既可以享受这两种功能,又可以在源代码管理中使用特定于用户的值。

我希望这会有所帮助。