文章目录
- 1. 环境配置
- 2. 拉取代码
-
- 2.1克隆到gitee
- 2.2 下载到本地
- 2.3 切换分支
- 2.4 重新导入
- 3. 环境配置
-
- 3.1 安装gradle-方法1
- 3.2 安装gradle-方法2(推荐)
- 3.3 jdk安装aspectj
- 3.4 idea安装AspectJ插件
- 4. 项目配置
-
- 4.1 修改build.gradle
- 4.2 修改buildSrcuild.gradle
- 4.3 修改gradlejvm参数(可选)
- 5 配置和构建
-
- 5.1 配置jdk
- 5.2 配置gradle
- 5.3 配置aspectj
- 5.4 构建
- 6 编译
-
- 6.1 设置modules
- 6.2 编译子项目
- 6.3 编译整个项目
- 6.4 可能的编译异常
-
- 6.4.1 内存不足
- 6.4.2 https校验异常
- 7 简单测试
-
- 7.1 新建模块
- 7.2 引入依赖
- 7.3 编写代码
- 7.4 运行
- 8 mvc例子
-
- 8.1 新建模块
- 8.2 配置
-
- 8.2.1 修改build.gradle
- 8.2.2 spring配置文件
- 8.3 配置tomcat
- 8.4 启动tomcat测试
1. 环境配置
- jdk版本:
1.8.0_301
- idea版本:
2021.2.2
- 系统版本:
win10_64位
2. 拉取代码
2.1克隆到gitee
spring的github地址:https://github.com/spring-projects/spring-framework
git: https://github.com/spring-projects/spring-framework.git
下载比较慢,可以先克隆到gitee,再从gitee获取下载地址
导入成功后,复制我们自己的下载地址
如果不使用ssh下载到本地,后续运行会有git的错误信息(但是不影响运行)
2.2 下载到本地
使用idea克隆到本地,我下载到的目录是H盘的spring目录
2.3 切换分支
完成后选择5.3.x分支,checkout到本地
完成后是这样的,关闭当前项目,并移除
2.4 重新导入
选择源码根目录的build.gradle重新导入
导入后停止构建!!!
导入后停止构建!!!
导入后停止构建!!!
还需要做后续的操作才能构建
3. 环境配置
3.1 安装gradle-方法1
找到本地的文件 H:springgradlewrappergradle-wrapper.properties
打开可以看到5.3.x使用的gradle版本是 gradle-7.5.1-bin.zip
到官网 https://gradle.org/releases/ 找到我们需要的版本
我只需下载 binary-only
:https://gradle.org/next-steps/version=7.5.1&format=bin
解压后配合环境变量 GRADLE_HOME D:gradle-7.5.1
然后在环境变量path添加 %GRADLE_HOME%in
配置仓库 GRADLE_USER_HOME H:gradle_repository
检查
cmd输入 gradle -v
配置文件
在gradle的init.d目录下新建文件 init.gradle,填入下面的内容
// project
allprojects{repositories {mavenLocal()maven { url 'https://maven.aliyun.com/repository/central/' }maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/google/' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }maven { url 'https://maven.aliyun.com/repository/spring/' }maven { url 'https://maven.aliyun.com/repository/spring-plugin/' }maven { url 'https://maven.aliyun.com/repository/grails-core/' }maven { url 'https://maven.aliyun.com/repository/apache-snapshots/' }maven { url 'https://jitpack.io/' }mavenLocal()mavenCentral()}
}
// plugin
settingsEvaluated { settings ->settings.pluginManagement {// Clear repositories collectionrepositories.clear()// Add my Artifactory mirrorrepositories {mavenLocal()maven {url 'https://maven.aliyun.com/repository/gradle-plugin/'}}}
}
3.2 安装gradle-方法2(推荐)
将下载后的文件放在目录,例如我的是 G:in_repogradlegradle-7.5.1-bin.zip
打开工程的文件 gradlewrappergradle-wrapper.properties
原来的配置
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
将distributionUrl修改为
distributionUrl=file:///G:/bin_repo/gradle/gradle-7.5.1-bin.zip
然后找到右侧的gradle刷新按钮点击刷新
同时,idea的gradle配置成 gradle-wrapper.properties
3.3 jdk安装aspectj
下载地址:https://www.eclipse.org/aspectj/downloads.php
下载后使用java -jar运行安装
点击next
选择安装目录,然后next
选择aspectj要安装的目录,我就安装在我的jdk目录下,后面配置idea需要用到该目录
然后点击install执行安装
安装成功
去到安装目录,可以看到已经安装成功
lib下的aspectjtools.jar文件后面idea需要配置到,可以先记下
3.4 idea安装AspectJ插件
打开idea -> plusins安装AspectJ插件
4. 项目配置
4.1 修改build.gradle
项目跟目录下的build.gradle文件
找到(大概是290行左右)
repositories {mavenCentral()maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
修改成
repositories {mavenLocal()maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/google/' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }maven { url 'https://maven.aliyun.com/repository/spring' }maven { url 'https://maven.aliyun.com/repository/spring-plugin' }maven { url 'https://jitpack.io/' }mavenCentral()maven { url "https://repo.spring.io/libs-spring-framework-build" }
}
4.2 修改buildSrcuild.gradle
打开项目的 buildSrcuild.gradle
找到
repositories {mavenCentral()gradlePluginPortal()
}
修改成
repositories {mavenLocal()maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/google/' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }maven { url 'https://maven.aliyun.com/repository/spring' }maven { url 'https://maven.aliyun.com/repository/spring-plugin' }maven { url 'https://jitpack.io/' }mavenCentral()gradlePluginPortal()
}
4.3 修改gradlejvm参数(可选)
项目根目录下的 gradle.properties 文件
version=5.3.26-SNAPSHOT
org.gradle.jvmargs=-Xms2048m -Xmx2048m -XX:MaxPermSize=2048m
org.gradle.caching=true
org.gradle.parallel=true
kotlin.stdlib.default.dependency=false
5 配置和构建
5.1 配置jdk
打开file -> Project Structure
选择jdk8,然后点击右下角apply应用
5.2 配置gradle
打开File -> settings
按照下面的配置好自己的gradle(前面安装gradle方法2的操作)
5.3 配置aspectj
settings -> Build,Execution,Deplotment -> Compile -> Java Compiler
Use compile选择 Ajc
下面的Project bytecode version 选择1.8
Path to aspectjtools.jar就是前面安装插件时提到的lib目录文件 aspectjtools.jar
记得后面红框内的必须勾选 Generate debug indo
和 Delegate to javac
配置好后勾选apply应用
5.4 构建
点击刷新按钮 reload all gradle projects
如果构建过程有超时异常,重复上述操作就好了
成功后
6 编译
6.1 设置modules
file -> Project Structure 找到modules
设置前是结构是这样的
选择项目spring-aop右击
右击添加AspectJ
spring-aspects也一样操作,做完后目录是这样的
6.2 编译子项目
gradle -> spring-oxm -> Tasks -> other -> compileTestJava
编译成功后
6.3 编译整个项目
gradle -> spring -> Tasks -> build -> build
编译结束后
6.4 可能的编译异常
6.4.1 内存不足
关闭其他程序释放出内存再重新执行build构建
6.4.2 https校验异常
异常信息,可以发现异常是由于spring-web模块使用了http引起的
解决方法
打开根目录下 srccheckstylecheckstyle.xml文件,添加内容
<!-- 过滤spring-web https校验 --><module name="BeforeExecutionExclusionFileFilter"><property name="fileNamePattern" value="^.*\spring-web\.*$"/></module>
7 简单测试
7.1 新建模块
项目 -> NEW -> Module
选择gradle,然后下一步
填写项目名称
等待idea构建结束,项目根目录下的settings.gradle已经有刚刚创建的myDemo模块了
7.2 引入依赖
打开myDemo目录下的build.gradle文件,添加依赖,完整的内容:
description = "Spring Demo"
apply plugin: "kotlin"
group 'org.springframework'
version '5.3.26-SNAPSHOT'repositories {mavenCentral()
}
dependencies {api(project(":spring-context"))testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}
test {useJUnitPlatform()
}
修改了该文件后,idea 右上角有构建按钮,点击构建
如果是引用了
plugins {id 'java'
}
则不能使用api,应该使用
dependencies {# 用implementation代替上面的apiimplementation(project(":spring-context"))testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}
7.3 编写代码
User.java
package com.demo;import org.springframework.stereotype.Component;@Component
public class User {public void printName() {System.out.println("Spring Demo");}
}
MyConfig.java
package com.demo;import org.springframework.context.annotation.ComponentScan;@ComponentScan(value = "com.demo")
public class MyConfig {
}
Test.java
package com.demo;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Test {public static void main(String[] args) {AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);User user = (User) applicationContext.getBean("user");user.printName();}
}
完整的目录结构
7.4 运行
运行Test的main方法可以看到控制台已经打印出User返回的内容
8 mvc例子
8.1 新建模块
项目右击 --> new --> Module
gradle --> 勾选java和web
填写项目名称和路径,然后点击finish等待构建完成
构建完成后的目录
8.2 配置
8.2.1 修改build.gradle
添加mvc的依赖
api(project(":spring-webmvc"))
完整的内容,修改后点击构建按钮
plugins {id 'war'id 'java'
}
apply plugin: "kotlin"
group 'org.springframework'
version '5.3.26-SNAPSHOT'repositories {mavenCentral()
}dependencies {api(project(":spring-webmvc"))testImplementation 'junit:junit:4.11'testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}test {useJUnitPlatform()
}
8.2.2 spring配置文件
-
在webapp下创建创建WEB-INF目录,然后在WEB-INF目录下创建web.xml
<?xml version="1.0" encoding="UTF-8"?>
web.xml的内容:<display-name>Archetype Created Web Application</display-name><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
-
在WEB-INF目录下创建spring.xml
<?xml version="1.0" encoding="UTF-8"?>
spring.xml的内容:
<mvc:annotation-driven />
<context:component-scan base-package=“com.demo”/>
-
创建controller
在java下创建包名 com.demo
创建 TestController.javapackage com.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@RequestMapping(value = “test”)
public String test() {
return “hello mvc”;
}
}
完成的目录
8.3 配置tomcat
添加本地的tomcat
选择部署的war包
选择 Deployment --> Artifact
选择我们的war,这里随便哪个都行,下面的那个支持debug时热部署
修改下面的项目名称,我修改成mvc
8.4 启动tomcat测试
启动成功
测试访问
浏览输入访问地址 http://localhost:8080/mvc/test 能正常出来我们返回的内容