我正在使用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或类似的。
提前致谢。
答案 0 :(得分:0)
我建议您使用maven profiles和每用户配置,保留为从pom的配置文件中引用为${env.PARAMETER}
的环境变量。
您必须指示用户根据需要设置其环境。
这样,您既可以享受这两种功能,又可以在源代码管理中使用特定于用户的值。
我希望这会有所帮助。