【问题标题】:Intershop code deploy workflowIntershop 代码部署工作流程
【发布时间】:2018-04-20 18:08:56
【问题描述】:

我不确定这是否是一个有效的问题,但是在您需要停止应用程序服务器、运行gradlew publishgradlew deployCartridges 然后启动应用程序服务器之前,最少的代码更改量是多少?

我不清楚我可以在多大程度上更改代码。 首选的开发工作流程是什么?

【问题讨论】:

  • 毫无疑问是一个有效的问题

标签: java intershop


【解决方案1】:

首先,确保您已为代码重载正确配置了 intershop。您应该设置以下设置:

# switch auto reload on for all Intershop artifacts
intershop.extensions.CheckSource=true
intershop.queries.CheckSource=true
intershop.pipelines.CheckSource=true
intershop.pagelets.CheckSource=true
intershop.webforms.CheckSource=true
intershop.template.CheckSource=true
intershop.template.CheckSourceModified=true
intershop.template.CompileOnStartup=false
intershop.template.PrintTemplateName=true
intershop.template.PrintTemplateMarker=true
intershop.template.isfilebundle.CheckSource=true
intershop.localization.CheckContent=true

#let intershop run on all cpu cores
intershop.cpu.id=

#dont let session timeout so quickly
intershop.session.TimeOut=60

# switch all preload functionality off
intershop.pipelines.PreloadFromCartridges=
intershop.pipelines.PreloadFromSites=
intershop.pipelets.PreloadFromCartridges=
intershop.webforms.Preload=false
intershop.queries.Preload=false

# Monitor the urlrewrite.properties files for modifications
# and refresh when needed.
intershop.urlrewrite.CheckSource=true

# The time interval in seconds, after which a lookup should be performed
# if CheckSource is "true". 0 means every time (not recommended).
intershop.urlrewrite.CheckSourceInterval=5

这些设置通常位于eserver/server/share/system/config/cluster 下的development.properties 文件中。

还要确保您的环境设置为开发环境。文件eserver/server/share/system/config/cluster/environment.properties 应配置为:environment=development。此设置使 intershop 将您的设置加载到 development.properties 文件中。

禁用页面缓存(在 SMC 中),包括 SLDSystem(此处缓存 urlrewriting)。我陷入这个陷阱的次数比我愿意承认的要多。

通过此设置,您只需编辑/保存和刷新浏览器即可查看 isml/pipelines/pagelet、查询文件、webforms、filebundles、urlrewriting 和本地化标签。基本上不是java的一切。说到java,事情就有点复杂了。

对于一个简单的 pipelet,您可以运行 gradlew publish,它应该会重新加载。但是,它不会重新加载它所依赖的已修改的其他类。有时它根本不重新加载,我不得不承认,我不知道为什么会这样。对于新的pipelets和组件框架的变化,你总是需要编译/重启intershop。

就像 Rainer 提到的那样,Jrebel 可以重新加载您的普通 Java 类,我也强烈推荐它。但是,您需要为此获得许可证。

【讨论】:

    【解决方案2】:

    代码更改是指 Java 代码吗? 在开发模式下,您可以启用管道代码的重新加载。 Intershop 为此提供了一个特殊的类加载器。

    如果您修改任何其他类,则需要重新启动服务器,除非您使用 JRebel 或其他可以检测代码修改的类加载器。

    对于所有这些,您当然必须使用“gradlew publish”编译代码。 如果您在配置框架中进行了更改,您还需要重新启动服务器。

    在开发过程中,您不需要“gradlew deployCartridges”来更改代码,因为服务器正在从您的项目目录中读取代码。

    【讨论】:

      猜你喜欢
      • 2012-10-12
      • 2018-07-12
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多