我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文中,苏南大叔讲述的主要内容还是:使用IDEA编辑javaweb项目时的事情。大家都知道:调试javaweb的时候,有个非常恼火的问题,那就是每次源码更新就要重新构建部署。如果javaphp相比较的话,这就是理念所不同之处。但是相信:在调试javaweb的时候,大家都还是希望,更改了源码的时候,能够实时的在网页上看到效果的。那么如何解决这个问题呢?

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - tomcat-server
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-1)

本文的主要描述的问题就是:IDEA编辑器,如何配置artifact,以达到可以实时更新的效果。测试环境:IDEA@2018.3.4

从已有源码创建项目

如果不涉及到调试,仅仅是编辑源码为目的的话,也许并不需要这个步骤,直接通过面板open对应项目目录即可。但是如果您计划使用IDEA进行调试的话,那么苏南大叔就建议您一定要走一下正常的import流程了。

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - idea-editor
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-2)

本步骤的要点就是“从源码创建项目”,然后一路下一步即可,无脑点击。所以,这里也不一一列出每个步骤的截图了。

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - create
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-3)

本步骤没有正确设置的话,可能会出现下面的错误提示信息:

Error:Kotlin: Output directory not specified for Module 'uudisk-master' production

调试服务器的on update action

从表象上来说,在配置debug配置信息的时候,在主界面的server选项卡上,有个on update action配置。这个选项是本文的关键点之一。

如果,您的下拉框里面只有一个restart server,那么,您一定没有正确设置artifact,继而也并不能达到源码更新后,就实时更新网站效果的目的。如下图所示:

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - onupdate
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-4)

苏南大叔期待的正确的下拉框里面,应该存在着选项:update classes and resources。如下图所示:

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - server-onupdate
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-5)

配置artifact

进入artifact设置的途径比较多,其中一条比较经典的途径是:左侧点击到项目根目录,然后按下快捷键:f4

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - artifact-select
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-6)

Artifacts选项卡中,添加一个Web Application:Exploded类型,二级类型是From Modules,然后一路默认继续即可。

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - artifact-select2
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-7)

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - artifact-select3
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-8)

这里要注意,artifact的默认名字name,会影响最终的访问路径url信息。所以,可以在这里留意考虑一下。放心,后续还是可以修改的。

配置debug选项

再次配置项目的debug配置,但是在on update action下拉之中,还是找不到期待中的update classes and resources的选项。而在对话框的下方,可能会看到如下错误提示信息:

Warning: No artifacts marked for deployment

点击提示后方的fix按钮,下一个Deployment选项卡界面中,就可以自动读取出定义好的artifact。界面下方的application context是个重点,默认取得是上一步中的artifact的名字。因为:苏南大叔想要最简单的处理这个地址。所以,修改这个context/

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - artifact-context
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-9)

修改后apply修改之后,在Server选项卡中,就可以看到期待中的变化了。瞬间感悟:真心是城里套路深啊... 现在,on updateon frame deactivation,都可以设置为update classes and resources了。

最终的项目访问地址

地址上主要有2点需要注意:一个是端口号,另外一个是基础路径。端口号这个比较易于配置,在调试选项中即可确定。对于访问的路径信息,是在配置artifact的时候,配置的context上下文的信息。默认的话,这个值就是artifact的名字。但是可以修改为/。这样的话,访问的时候,路径信息中就是很清晰的/了,而并不存在二级目录。

苏南大叔:IDEA 编辑器如何配置 artifact,达到源码实时更新的效果? - config-server-final
IDEA 编辑器如何配置 artifact,达到源码实时更新的效果?(图10-10)

相关链接

下面的这个文章内容,是苏南大叔描述的另外一篇类似的java实时更新效果的文章:

总结

这里的javaweb调试,还是比较复杂的。各种选项相互影响,想要调试出最佳效果,还是要费些力气的说。更多的javaweb相关文字,请点击下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   tomcat    java