Gradle入门到精通(四)- IDEA创建JavaSE、JavaWeb工程
接上一篇Gradle入门到精通(三)- 配置文件build.gradle
一、JavaSE工程
创建一个JaveSE的Gradle工程即可,与之前创建Gradle工程一样,没有区别,如下图:
双击右边Gradle projects窗口jar进行打包,如下图:
案例如下:
build.gradle
group 'com.etbird' version '1.0-SNAPSHOT' apply plugin: 'java' sourceCompatibility = 1.8 /** * 指定所使用的仓库, * * mavenCentral()表示使用中央仓库,此项目中所需要的jar包都会默认从中央仓库下载到本地指定目录下。 */ repositories { mavenLocal() mavenCentral() } /** * gradle工程所有jar包的坐标都在dependencies属性内定义; * 每一个jar包的坐标由三个基本元素组成:group、name 、version,与Maven对应 * testCompile该jar包的作用域,这里是表示该jar包在测试的时候起作用 * 我们在gradle里面添加坐标的时候都要带上jar包的作用域 */ dependencies { compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.18' testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.springframework', name: 'spring-context', version: '5.3.3' }
UserDao.java
package com.etbird.dao; import com.etbird.domain.User; import java.util.List; public interface UserDao { public List<User> findAll(); }
UserDaoImpl.java
package com.etbird.dao.impl; import com.etbird.dao.UserDao; import com.etbird.domain.User; import java.util.List; public class UserDaoImpl implements UserDao { @Override public List<User> findAll() { System.out.println("列表查询成功..."); return null; } }
User.java
package com.etbird.domain; import lombok.Data; @Data public class User { private Integer userId; private String userName; }
bean.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/sping-aop.xsd"> <bean id="userDao" class="com.etbird.dao.impl.UserDaoImpl"></bean> </beans>
UserTest.java
package com.etbird.test; import com.etbird.dao.UserDao; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class UserTest { @Test public void userTest(){ //Spring容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); //从容器中获取对象 UserDao userDao = ctx.getBean(UserDao.class); //调用方法 userDao.findAll(); } }
二、JavaWeb工程
同上(注:这里只是提供一种实现方法)
2.1、创建一个JaveSE的Gradle工程即可,与之前创建Gradle工程一样,没有区别,如下图:
2.2、点击Next,输入GroupId、ArtifactId、Version,如下图:
2.3、点击Next,与之前没有区别,如下图
2.4、点击Next,如下图
2.5、点击Finish,完成。
2.6、如何修改为web目录结构?
2.6.1、根据规范,添加如下目录及文件:
src/main/webapp
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/web.xml
web.xml 内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>rbac1.0</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
2.6.2、在build.gradle文件中添加如下内容,让IDEA识别为web工程,即把java se工程变为了java web工程
apply plugin: 'war'
如下图:
2.6.3、写几个文件测试一下
这里我们写一个基于SpringMVC的简单案例Hello:
① 在build.gradle中,导入依赖的spring包
spring-context:
compile group: 'org.springframework', name: 'spring-context', version: '5.0.2.RELEASE'
spring-web:
compile group: 'org.springframework', name: 'spring-web', version: '5.0.2.RELEASE'
spring web mvc:
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.2.RELEASE'
servlet:
provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
jsp:
provided group: 'javax.servlet', name: 'jsp-api', version: '2.0'
如下图:
build.gradle
group 'com.etbird' version '1.0-SNAPSHOT' apply plugin: 'java' apply plugin: 'war' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' } group 'com.etbird' version '1.0-SNAPSHOT' apply plugin: 'java' sourceCompatibility = 1.8 repositories { mavenLocal() mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.springframework', name: 'spring-context', version: '5.0.2.RELEASE' compile group: 'org.springframework', name: 'spring-web', version: '5.0.2.RELEASE' compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.2.RELEASE' provided group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1' provided group: 'javax.servlet', name: 'jsp-api', version: '2.0' }
② 在src/main/resources下创建一个springmvc.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/sping-aop.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--配置组件扫描--> <context:component-scan base-package="com.etbird.controller"/> <!--处理器映射器、处理器解析器--> <mvc:annotation-driven/> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> <!--释放静态资源--> <mvc:default-servlet-handler/> </beans>
③ 在web.xml配置SpringMVC核心Servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!--配置springmvc核心servlet--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
④ 编写一个Controller和index.jsp
HelloController.java
package com.etbird.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/") public class HelloController { @GetMapping("/index") public String index() { return "index"; } }
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Index...
</body>
</html>
⑤ 配置Tomcat
点击 ,配置本地Tomcat8:
出现如下界面,配置Deployment --> + --> Artifact...:
选择 exploded
⑥ 点击 运行项目,
浏览器输入http://localhost:8080/index,看到如下效果图:
至此结束!