Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Hybris local.properties中的环境变量_Hybris - Fatal编程技术网

Hybris local.properties中的环境变量

Hybris local.properties中的环境变量,hybris,Hybris,我想知道,在Hybris属性文件中,是否有一种引用环境变量的方法 例如,在local.properties中: my.property=${my_环境_变量} 我的研究得出结论,这在春天是可能的,但在Hybris似乎不起作用 如果您有任何想法,我们将不胜感激。我发现这与您的问题有关。希望能有帮助 无法访问local.properties文件中的shell环境变量。作为一种解决方法,您可以在启动平台之前执行echo“my.property=$my\u ENVIRONMENT\u VARIABLE”

我想知道,在Hybris属性文件中,是否有一种引用环境变量的方法

例如,在local.properties中:
my.property=${my_环境_变量}

我的研究得出结论,这在春天是可能的,但在Hybris似乎不起作用


如果您有任何想法,我们将不胜感激。

我发现这与您的问题有关。希望能有帮助

无法访问local.properties文件中的shell环境变量。作为一种解决方法,您可以在启动平台之前执行echo“my.property=$my\u ENVIRONMENT\u VARIABLE”>>local.properties

不,这是不可能的

实际上,hybris使用
org.apache.commons.configuration
包。在中,您将发现可以使用环境变量

user.file = ${sys:user.home}/settings.xml
action.key = ${const:java.awt.event.KeyEvent.VK_CANCEL}
java.home = ${env:JAVA_HOME}
不幸的是,hybris做了一些我无法解释的事情,他们跳过了默认实现,删除了所有插值功能

如果我们进一步分析该问题,则使用的配置类称为
HybrisConfiguration
。这个类扩展了ApacheCommons配置的
AbstractConfiguration
getProperty
方法使用另一个名为
ConfigIntf
的接口。实现可以在类
AbstractConfig
中找到。这里有每个
getString
getInteger
等。。。方法被重写

例如,对于String,该方法不调用该方法,但您会发现一个非常简单的

StringUtils.isEmpty(value) ? def : value;

所以,如果您想使用ApacheAPI的所有功能,那么请尝试替换hybris实现。。。但是,我认为,如果不修改平台,就很难做到这一点,因为我没有看到任何可以注入的bean。

可以访问hybris中的环境变量。我公司的一位合伙人在hybris文档中发现了这一点:

平台允许您将属性也指定为环境变量

# security: make the platform *abort startup* if no one overrides the settings below
db.url=<CHANGE_ME>
db.username=<CHANGE_ME>
db.password=<CHANGE_ME>
# security: end
如您所见,设置需要加前缀和转义,才能作为环境变量使用

user.file = ${sys:user.home}/settings.xml
action.key = ${const:java.awt.event.KeyEvent.VK_CANCEL}
java.home = ${env:JAVA_HOME}


希望这对您有用。

谢谢@alain.janinm,我发现您可以在定义HYBRIS_DIR的同一文件中添加类似环境的变量。。。但是,如果您想说,将数据库密码从受版本控制的属性文件中移出,这是没有帮助的,因为它们在系统运行之后才可用。正确的解决方案就是我发布的解决方案