我不确定这是否是一个有效的问题,但在您需要停止应用程序服务器,运行 public ActionResult Java_Script(){
return JavaScript("Message");
}
,gradlew publish
然后启动之前,最少量的代码更改是什么应用服务器?
我不清楚我可以在多大程度上更改代码。 什么是首选的开发工作流程?
答案 0 :(得分:4)
首先,确保为代码重新加载正确配置了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
# 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
这些设置通常位于development.properties
下的eserver/server/share/system/config/cluster
文件中。
还要确保您的环境已设置为开发。文件eserver/server/share/system/config/cluster/environment.properties
应配置此文件:environment=development
。此设置使intershop在development.properties
文件中加载您的设置。
禁用页面缓存(在SMC中),包括SLDSystem(此处缓存urlrewriting)。我陷入这个陷阱比我想承认的更多。
通过此设置,您可以编辑/保存和刷新浏览器以获取isml / pipelines / pagelet,查询文件,webforms,filebundles,urlrewriting和本地化标签。一切都不是java基本上。说到java,事情变得有点复杂。
对于一个简单的小导管,您可以运行gradlew publish
并重新加载。但是,它不会重新加载它所依赖的其他类已被修改。有时它根本不会重新加载,我必须承认,我不知道为什么会发生这种情况。对于新的小管道和组件框架中的更改,您始终需要编译/重新启动intershop。
就像Rainer提到的那样,Jrebel可以重新加载普通的java类,我也强烈推荐它。但是,您需要许可证。
答案 1 :(得分:1)
代码更改意味着Java代码? 在“开发”模式下,您可以启用重新加载管道代码。 Intershop有一个特殊的类加载器。
如果修改任何其他类,除非使用JRebel或其他可以检测代码修改的类加载器,否则需要重新启动服务器。
你当然必须使用" gradlew publish"编译代码。为了这一切。 如果在配置框架中进行了更改,还需要重新启动服务器。
在开发过程中,您不需要" gradlew deployCartridges"因为服务器正在从项目目录中读取代码,所以代码更改。