apache karaf 启动时 运行 命令的脚本

script to run commands at start of apache karaf

当我 运行 karaf 时,我需要在其中安装一些功能。为此,我给出如下命令:

install -s mvn:org.apache.derby/derby/10.8.2.2
feature:install jndi jpa transaction http

我想自动执行此操作,因为我想在重新启动时自行启动 karaf。我读过我可以使用 wrapper:service 在重启时启动它。但我的下一个问题是我将如何发出这些命令。

我了解到可以使用 etc/shell.init.script 来完成。但是我无法理解 karaf 网站 scripting 页面上给出的示例。

我的 karaf 中 shell.init.script 文件的最后一行是:

help = { *:help $args | more } ;
man = { help $args } ;
log:list = { log:get ALL } ;

我应该简单地在这些行下面写这些命令,还是我需要写一些我不知道的脚本页面上给出的函数(下面给出了一个)。

#
# Add a value at the end of a property in the given OSGi configuration
#
# For example:
# > config-add-to-list org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories http://scala-tools.org/repo-releases
#
config-add-to-list = {
  config:edit  ;
  a = (config:property-list | grep --color never  | tac) ;
  b = (echo $a | grep --color never "\b\b" | tac) ;
  if { ($b trim) isEmpty } {
    if { $a isEmpty } {
      config:property-set  
    } {
      config:property-append  ", "
    } ;
    config:update
  } {
    config:cancel
  }
}

在研究了更多的概念并进行了一些尝试之后,我发现这些命令可以写在脚本中,但是,它必须用它的包来指定(我不知道如何称呼它为包或包)

这些命令可以以这种形式给出:

bundle:install -s mvn:org.apache.derby/derby/10.8.2.2
feature:install jndi jpa transaction http
shell:echo "in script"

您可以在 featuresRepositories 下的“org.apache.karaf.features.cfg”中添加要在启动时安装的功能(和功能存储库)和featuresBoot 个部分。