由于种种原因,简书等第三方平台博客不再保证能够同步更新,欢迎移步 GitHub:https://github.com/kingcos/Perspective/。谢谢!
Ant -> Maven -> Gradle
- Info
- JDK 1.8
- Tomcat 8.5.5
- Intellij IDEA 2016.2.3
- macOS 10.12.1 beta
前言
熟悉 Android 开发的程序员都知道,Android Studio 是基于 Intellij IDEA 社区版所开发的,其默认使用 Gradle 构建项目。
与 Maven 不同,Gradle 的配置更为简单,两者的优劣这里略过。这次就体验一下使用 Gradle 构建最基本的 Struts 2 Web 应用。记录于此,便于往后查阅。
安装 Tomcat
下载并解压 Tomcat,将其置于 /usr/local
文件夹内,这里以 Tomcat 8.5.5 为例,因为其支持 Servlet 3.1 标准。
新建 Gradle Web 项目
菜单栏:File - New - Project...
选择左侧的 Gradle,勾选 Web 选项,因为要建立的是跑在服务器上的应用。点击 Next。
输入 Group ID 以及 Artifact ID,建议输入真实,唯一的 ID。良好的习惯将减小未来发生错误的概率。继续点击 Next。
勾选必要的选项,Next。
设置项目的放置目录,Finish。
等待 Gradle 构建项目,可以在窗口下部看到当前状态,构建完毕时,则会消失。和 Maven 类似,Gradle 的构建过程也需要联网下载所需的依赖。
导入 Struts 2
Gradle 项目建立基本完毕,需要配置 Struts 2 的依赖。和 Maven 类似,可以搜索 Maven Repository,虽然名字是 Maven 仓库,但却提供了多种依赖的部署方式。
搜索 struts,我们能得到很多结果,我们需要选择 Struts 2 Core。
打开之后可以看到 Struts 2 的不同版本,Maven 和 Gradle 的方便之处在于,可以很简单的切换不同版本,而不用手动下载相关 JAR 包。对于版本的选择,首先可以优先选择 release 版。测试版(即 Beta 版)在网页上也有清晰的标注。另外通过阅览 Struts 官网我们得知,Struts 3 将基于 2.5 或更新版本,较大版本更迭会有较大不同,甚至是兼容性的差异。所以我们选择当前 2.3 的最高子版本 2.3.30。当然你也可以选择参考书等资料中的版本,但个人偏向较新的版本,不要沉溺于太过时的东西,限制你的思想。
切换到 Gradle 标签,拷贝其中的内容。
回到 IDEA,打开 build.gradle,将其粘贴到 dependencies 中。由于之前勾选过 auto-import,即可自动导入。
如果忘记勾选,也可在此手动刷新,让其导入。
至此,Struts 2 已经导入该项目,但距离使用还差一点距离。
配置 Tomcat
虽然我们安装了 Tomcat,也选择了 Web 应用,但并没有部署项目,所以无法运行。点击图中菜单的下三角,选择 Edit Configurations...。
点击左上角加号。
选择 Tomcate Server - Local。
根据下图即可配置 Tomcat。
如果 IDEA Application server 为空,那么需要首先添加 Tomcat 服务器,点击 Configure...,点击新窗口的左上角的加号添加新的服务器,选择 Tomcat 的路径即可(图上已经拥有配置好的两个不同版本的 Tomcat 服务器)。
回到配置 Tomcat,切换到 Deployment 标签,点击图中的加号,选择 Aritifacts。
这里选择 exploded 结尾的 war 包,这是展开的 war,便于重载资源,在开发阶段建议选择此。
配置完成,点击 OK。
添加 web.xml & struts.xml
点击菜单栏的 Project Structure。
选择左侧 Modules,当前 Web Gradle,点击加号。
选择创建 web.xml 的路径,注意在最后不要忘记 web.xml,否则并不会创建。
配置 web.xml 完成,点击 OK。
struts.xml 可以直接在 resources 目录右键 - New - XML Configuration File - Struts Config,即可生成。
新建完成,IDEA 会检测到 struts.xml,提示配置,选择 Configure,勾选刚刚创建的 struts.xml 以及下面的 struts-default(图中漏掉了),点击 OK。
(注意:如果 IDEA 没有提示,那么可在选择 Web Gradle 界面,选择左侧的 Facets,点击加号,添加 Struts 2 并勾选上述文件)
配置完成,点击 OK。
添加完成这两个 xml 文件,但并没有进行内部的配置,web.xml 是必须配置的,可以按照如下配置 Struts 2 过滤器。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
测试
至此,Struts 2 基本配置已经完成,可以简单的在 index.jsp 中测试 Struts 2 的标签即可验证是否成功。