Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中向两个maven模块中注入变量值?_Java_Maven_Module - Fatal编程技术网

如何在Java中向两个maven模块中注入变量值?

如何在Java中向两个maven模块中注入变量值?,java,maven,module,Java,Maven,Module,我有一个带有pom.xml的大项目,这个项目中的几个模块都有自己的pom.xml。其中两个模块依赖于同一个变量(数据库名称) 是否有一个现有的模式在一个地方命名这个变量,并将它注入到两个项目中?我想有一个maven插件,但是找不到 变量需要被注入到java文件和xml文件中我在评论中说过这一点,但我相信这正是您要寻找的。您可以使用MAVEN_OPTS指定在运行时注入的变量 export MAVEN_OPTS="-D{parameter_name}={parameter-value}" 因此,如

我有一个带有pom.xml的大项目,这个项目中的几个模块都有自己的pom.xml。其中两个模块依赖于同一个变量(数据库名称)

是否有一个现有的模式在一个地方命名这个变量,并将它注入到两个项目中?我想有一个maven插件,但是找不到


变量需要被注入到java文件和xml文件中

我在评论中说过这一点,但我相信这正是您要寻找的。您可以使用
MAVEN_OPTS
指定在运行时注入的变量

export MAVEN_OPTS="-D{parameter_name}={parameter-value}"
因此,如果您想要一个名为“foo”且值为“bar”的变量,您可以这样做

export MAVEN_OPTS="-Dfoo=bar"
要在XML文件中访问此变量,可以使用
${foo}
(或任何您称之为它的名称),如下所示:

<value>classpath:contexts/${foo}.properties</value>
classpath:contexts/${foo}.properties

(以上只是我正在从事的一个使用相同技术的项目的一个片段)

我在评论中说了这一点,但我相信这就是你想要的。您可以使用
MAVEN_OPTS
指定在运行时注入的变量

export MAVEN_OPTS="-D{parameter_name}={parameter-value}"
因此,如果您想要一个名为“foo”且值为“bar”的变量,您可以这样做

export MAVEN_OPTS="-Dfoo=bar"
要在XML文件中访问此变量,可以使用
${foo}
(或任何您称之为它的名称),如下所示:

<value>classpath:contexts/${foo}.properties</value>
classpath:contexts/${foo}.properties

(以上只是我正在处理的一个使用相同技术的项目的一个片段)

我的解决方案是在chef部署中包含该变量,这样我们就可以将它保存到配置文件中。从那里,Java代码可以访问变量

xml文件是一个Oozie工作流,因此我还使用chef将相同的变量存放到Oozie协调器中

这个答案可能不会帮助任何试图只用maven解决这个问题的人,但它是对我有效的解决方案


我相信如果您只处理java问题,java.util.Properties可能会有所帮助

我的解决方案是在chef部署中包含该变量,这允许我们将其存放到配置文件中。从那里,Java代码可以访问变量

xml文件是一个Oozie工作流,因此我还使用chef将相同的变量存放到Oozie协调器中

这个答案可能不会帮助任何试图只用maven解决这个问题的人,但它是对我有效的解决方案


我相信如果您只处理java问题,java.util.Properties可能会有所帮助

听起来像java配置而不是maven配置?如果是这种情况,您应该考虑在运行时加载的外部化配置文件。为什么不添加一个公共项目呢?对于maven,我认为您可以使用父pom共享属性。您可能是对的。当我只需要一个变量时,创建一个完整的配置文件是错误的。您可以共享属性,但我认为pom不能将这些属性传递到java文件中。我正在寻找java文件中可以执行变量=,然后在构建时maven将变量注入到它看到的文件中。外部配置文件或其他解决方案可能也可以工作。听起来像java配置,而不是maven配置?如果是这种情况,您应该考虑在运行时加载的外部化配置文件。为什么不添加一个公共项目呢?对于maven,我认为您可以使用父pom共享属性。您可能是对的。当我只需要一个变量时,创建一个完整的配置文件是错误的。您可以共享属性,但我认为pom不能将这些属性传递到java文件中。我正在寻找java文件中可以执行变量=,然后在构建时maven将变量注入到它看到的文件中。外部配置文件或其他解决方案可能也可以工作。听起来像java配置,而不是maven配置?如果是这种情况,您应该考虑在运行时加载的外部化配置文件。为什么不添加一个公共项目呢?对于maven,我认为您可以使用父pom共享属性。您可能是对的。当我只需要一个变量时,创建一个完整的配置文件是错误的。您可以共享属性,但我认为pom不能将这些属性传递到java文件中。我正在寻找java文件中可以执行变量=,然后在构建时maven将变量注入到它看到的文件中。外部配置文件或其他解决方案可能也可以工作。