1.創(chuàng)建 Gradle Java 項目
1.new project
—Gradle
—選擇對應SDK
—Java
—Next
。
?選擇gradle項目步责,自己環(huán)境中的SDK(最低版本為JDK1.8)厨相,創(chuàng)建JAVA項目等舔。
2.輸入GroupId
—輸入artifictId
—Next
腥例。
?輸入groupId,命名請遵循相應命名規(guī)范狡忙。公司-com;組織-org;個人-pers址芯。
3.選擇Use auto-import
—選擇Use local gradle distribution
—Next
灾茁。
?選擇自動導入,使用本地gradle環(huán)境谷炸,選擇后會自動出現(xiàn)本地配置的GRADLE_HOME
路徑,然后選擇本地的jdk
配置即可北专。
4.輸入Project name
—選擇Project location
—Finish
。
?輸入項目名稱旬陡,選擇相對應的項目存儲路徑拓颓,點擊Finish,一個gradle java項目創(chuàng)建完成描孟。
5.看到項目中出現(xiàn)文件build.gradle
并且Build:Sync
無異常驶睦,說明gradle java項目已創(chuàng)建成功。
6.點擊file
—settings
—Build,Excution,deployment
—Build Tools
—Gradle
—選擇Offline
匿醒。
?將gradle設置為離線工作模式场航,并且可查看到 service directory path
為GRADLE_USER_HOME
路徑,該路徑為gradle jar包存放地址廉羔。
2.Gradle build.gradle配置文件介紹
//創(chuàng)建項目輸入groupId
group 'pers.gradle'
//創(chuàng)建項目所輸入的版本
version '1.0-SNAPSHOT'
//指定運行環(huán)境溉痢,java
apply plugin: 'java'
//jdk的版本,1.8
sourceCompatibility = 1.8
/**
* 指定所使用倉庫的路徑
* mavenCentral()憋他,中央倉庫孩饼,項目中所使用的jar包都會從中央倉庫下載到本地倉庫。
* 若本地倉庫已經擁有相應的jar包竹挡,則不會重復下載
* 可以使用命令maven { url "http://maven.aliyun.com/nexus/content/groups/public" }指定maven的遠程倉庫地址
* mavenLocal()本地倉庫捣辆,與GRADLE_USER_HOME配置的路徑一致。
* */
repositories {
mavenLocal()
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
mavenCentral()
}
/**
* gradle所有的jar包文件坐標都在dependencies屬性內放置
* 每一個jar包都具備以下特點
* 1.scope(作用域):gradle支持compile此迅、runtime汽畴、testCompile、testRuntime四種scope
* compile:jar包在編譯期與運行期依賴耸序。
* runtime:jar包在運行期依賴忍些。
* testCompile:jar包在測試編譯期與運行期依賴。
* testRuntime:jar包在測試運行期依賴坎怪。
* 補充:
* providedCompile:jar包/依賴代碼 僅在編譯的時候需要罢坝,但是在運行時不需要依賴。
* providedCompile與compile,runtime區(qū)別:
* compile: 前提:apply plugin: 'war'或者apply plugin: 'java'
* providedCompile:前提:apply plugin: 'war'搅窿,若前提為'java',則使用compileOnly
* runtime:前提:apply plugin: 'war'
* 以上所說的前提嘁酿,如果不正確配置的話隙券,就會遇到依賴包無法導入,以及runtime以及providedCompile無法使用的情況闹司。
* 2. group:與maven的groupId一致娱仔。
* name:與maven的artifactId一致。
* version:與maven的version一致游桩。
*/
dependencies {
//gradle jar包坐標可以訪問牲迫,maven中央倉庫[https://mvnrepository.com],找到相對應的jar包借卧,選擇[gradle]選項卡盹憎,復制該地址即可。
testCompile group: 'junit', name: 'junit', version: '4.12'
//引入spring依賴
compile group: 'org.springframework', name: 'spring-context', version: '5.1.5.RELEASE'
//引入lombok依賴
//@Data注解在類上铐刘,會為類的所有屬性自動生成setter/getter陪每、equals、canEqual镰吵、hashCode奶稠、toString方法,如為final屬性捡遍,則不會為該屬性生成setter方法锌订。
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.2'
}
3.Gradle settings.gradle配置文件介紹
//根項目名稱
rootProject.name = 'gradle-example'
4.Gradle 項目結構
5.Gradle Java Spring 項目
1.在model
文件夾下編寫實體類User.java
。
package pers.gradle.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
* 用戶信息實體
* @Data 添加getter画株、setter方法
* @NoArgsConstructor 添加無參構造器
* @AllArgsConstructor 添加全參構造器
* @AllArgsConstructor 添加鏈式調用
* @ToString 添加toString
* @author Leo
* @date 11:53 2019/5/17
* @param
* @return
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString
public class User {
private Long id;
private String name;
private Integer age;
}
2.在service
文件夾下編寫接口類UserService.java
辆飘。
package pers.gradle.service;
import pers.gradle.model.User;
import java.util.List;
/**
* 用戶信息service
* @author Leo
* @date 10:37 2019/5/22
**/
public interface UserService {
/**
* getUserList() 獲取User列表
* @author Leo
* @date 10:27 2019/5/22
* @return java.util.List<pers.gradle.model.User>
**/
List<User> getUserList();
}
3.在service
文件夾下編寫接口實現(xiàn)類UserServiceImpl.java
。
package pers.gradle.service;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Service;
import pers.gradle.dao.UserDao;
import pers.gradle.model.User;
import java.util.List;
/**
* 用戶信息service實現(xiàn)
* @author Leo
* @date 13:25 2019/5/22
**/
@Service
public class UserServiceImpl implements UserService{
@Override
public List<User> getUserList() {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");
UserDao userDao=applicationContext.getBean(UserDao.class);
return userDao.getUserList();
}
}
4.在dao
文件夾下編寫接口類UserDao.java
谓传。
package pers.gradle.dao;
import org.springframework.stereotype.Repository;
import pers.gradle.model.User;
import java.util.List;
/**
* 用戶信息dao
* @author Leo
* @date 13:25 2019/5/22
**/
@Repository
public interface UserDao {
/**
* getUserList() 獲取用戶信息列表
* @author Leo
* @date 2019/5/22
* @return java.util.List<pers.gradle.model.User>
**/
List<User> getUserList();
}
5.在dao
文件夾下編寫接口實現(xiàn)類UserDaoImpl.java
蜈项。
package pers.gradle.dao;
import pers.gradle.model.User;
import java.util.ArrayList;
import java.util.List;
/**
* 用戶信息dao實現(xiàn)類,模擬數(shù)據庫返回結果
* @author Leo
* @date 13:23 2019/5/22
* @param
* @return
**/
public class UserDaoImpl implements UserDao{
@Override
public List<User> getUserList() {
List<User> userList=new ArrayList<>();
//鏈式調用
User userZs=new User().setId(1L).setName("張三").setAge(18);
userList.add(userZs);
//鏈式調用
User userLs=new User().setId(2L).setName("李四").setAge(20);
userList.add(userLs);
return userList;
}
}
6.在resources
文件夾下編寫配置文件beans.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--userService-->
<bean id="userService" class="pers.gradle.service.UserServiceImpl"/>
<!--userDao-->
<bean id="userDao" class="pers.gradle.dao.UserDaoImpl"/>
</beans>
7.在test.java.pers.gradle
文件夾下編寫測試類UserTest.java
紧卒。
package pers.gradle;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import pers.gradle.model.User;
import pers.gradle.service.UserService;
import java.util.List;
public class UserTest {
@Test
public void getUserList(){
//獲取spring容器
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("beans.xml");
//從容器中獲取UserService對象
UserService userService=applicationContext.getBean(UserService.class);
//調用方法
List<User> userList = userService.getUserList();
//輸出用戶列表
userList.forEach(u-> System.out.println("用戶"+u.getName()+":"+u));
}
}
8.獲取輸出結果。
用戶張三:User(id=1, name=張三, age=18)
用戶李四:User(id=2, name=李四, age=20)