如何在Linux中设置CLASSPATH让grailsfind外部configuration?

在linux下。 我正在尝试创build一个文件作为setenv.sh声明一个path..

喜欢这个..

export CLASSPATH=$CLASSPATH:/tampung/ # Check for application specific parameters at startup if [ -r "$CATALINA_BASE/bin/appenv.sh" ]; then . "$CATALINA_BASE/bin/appenv.sh" fi echo "Using CATALINA_OPTS:" for arg in $CATALINA_OPTS do echo ">> " $arg done echo "" echo "Using JAVA_OPTS:" for arg in $JAVA_OPTS do echo ">> " $arg done echo "_______________________________________________" echo "" 

我想我使用这个文件可以redirect“classpath”的位置

 grails.config.locations = ["classpath:external-config.groovy"] //i mean this classpath 

我怎样才能设置这个类path?

你只需要添加一个CLASSPATH到你的setenv.sh文件。 例如…像这样..

 CLASSPATH=/root/yourtomcatName/lib:/yourexternalconfigpath export CLASSPATH 

然后重新运行你的tomcat。

希望它会帮助你。

在Grails中配置外部配置文件的最简单的方法是:

在tomcat中:

 # External configuration location. NOTE - the app will append appname ie YOUR_APP to the end of this path CONFIGLOC="$CATALINA_HOME/../myconf" JAVA_OPTS="$JAVA_OPTS -DCONFIGLOC=$CONFIGLOC" 

因此,在tomcat或catalina_home文件夹中创建一个myconf文件夹。 然后将您的外部配置放入myconf / yourApp /文件夹中

现在参考你的应用程序中的配置作为外部配置。

在应用程序的Config.groovy的顶部,现在定义:

 //String externalConfigPath='classpath:' if (System.getProperty('CONFIGLOC')) { externalConfigPath='file:'+System.getProperty('CONFIGLOC')+File.separator+appName+File.separator } 

现在在您的环境Config.groovy配置…

 environments { ... production { grails.logging.jul.usebridge = false grails.config.locations = [ "${externalConfigPath}${appName}Config.groovy" "${externalConfigPath}myAppConfig.groovy" ] } 

您可以动态获取它绑定您的appNameConfig.groovy或定义它在上述位置提供的两行