Spring5本地源码构建

举报
长路 发表于 2022/11/28 19:26:42 2022/11/28
【摘要】 文章目录前言spring源码构建编译报错整理1、gradle的url配置不允许为http2、Gradle的版本不能超过6.0及以上3、git相关报错(Process 'command 'git'' finished with non-zero exit value 128)构建过程参考文章 前言 本篇博客是进行本地Spring5源码构建的笔记,若文章中出现相关问题,请指出! 所有博客文件目录索引:

@[toc]

一、Spring源码构建

1.1、构建过程

可参照:Spring实现源码下载编译及导入IDEA过程图解

1、配置好Gradle(版本为6.0以下):编译成功的由5.6.4【高版本不行已测试过】

2、到Spring官网来进行下载源码:Spring仓库

image-20220317132538220

3、下载完成之后使用IDEA来打开,接着我们来配置IDEA中的Gradle

根据下图进行配置即可,引用 Spring源码调试环境搭建

image-20220317132851209

4、成功编译结果

image-20220317140605708

编译结束以后,选择项目右侧的gradle,如出现以下视图,则说明编译成功

image-20220317140617211


1.2、构建过程中问题整理

①gradle的url配置不允许为http

原因:1:29 PM Gradle sync failed: Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository ‘Bstek(http://nexus.bsdn.org/content/groups/public/)’ to redirect to a secure protocol (like HTTPS) or allow insecure protocols. image-20220317133319196

解决方案:将原本的gradle配置中的url都改为https

image-20220317133353822

②Gradle的版本不能超过6.0及以上

原因:1:33 PM Gradle sync failed: The build scan plugin is not compatible with Gradle 6.0 and later.

image-20220317134050911

解决方案:更改版本为5.6

③git相关报错(Process ‘command ‘git’’ finished with non-zero exit value 128)

image-20220317140440780

说明:git的问题,暂时还不知道如何解决,不影响构建。

看到BUILD SUCCESSFUL说明已经编译成功。


④导包速度很慢:修改spring项目中的build.gradle设置镜像源

搜索repositories,来进行修改替换

maven { url "http://maven.aliyun.com/nexus/content/groups/public" }

image-20220430124111769


二、添加测试模块

参考文章:Spring搭建本地源码调试环境

2.1、添加过程

2.1.1、创建module,选择gradle

image-20220430124343072

image-20220430125445187

点击finsh,此时我们的模块已经创建完成如下:

image-20220430125600310

你可以在项目目录中下的settings.gradle文件里看到添加了这个模块:

image-20220430130336628

2.1.2、在当前module中的配置文件里添加依赖

image-20220430130515501

dependencies {
    //添加依赖
    compile(project(":spring-beans"))
    compile(project(":spring-core"))
    compile(project(":spring-context"))
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

然后点击右边的build即可进行添加依赖。

若是出现success,表示引入成功:

image-20220430130605469

2.1.3、编写bean配置文件,来进行测试

image-20220430133537864

①添加Spring的配置文件:spring-config.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.xsd">

	<!--配置Bean: User-->
	<bean id="user" class="com.changlu.User"/>

</beans>

②创建一个User对象

package com.changlu;

/**
 * @ClassName User
 * @Author ChangLu
 * @Date 4/30/2022 1:07 PM
 * @Description 用户类
 */
public class User {

	public void sayHello(){
		System.out.println("hello,spring!");
	}

}

③编写测试方法

package com.changlu;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @ClassName SpringDemo
 * @Author ChangLu
 * @Date 4/30/2022 1:08 PM
 * @Description 测试类
 */
public class SpringDemo {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-config.xml");
		User user = (User) context.getBean("user");
		user.sayHello();
	}
}

接着运行即可:

image-20220430133659827

build过程报错

问题1、Could not find com.ibm.websphere:uow:6.0.2.17.

原因:之前build.gradle中镜像地址改成了阿里云的,把它自己的注释掉了

image-20220430130132279

解决方式:把它原来的取消注释即可

image-20220430130205827

2.2、解决运行main方法不编译整个项目的问题

参考文章:idea运行main方法或Test避免编译整个应用的方法解决idea 运行main方法自动编译整个工程引发的问题

起因:在进行测试模块的main方法测试时点击main运行,发现要进行编译整个项目后才执行main()方法。

解决方案

1、点击Gradle小扳手

image-20220430133902026

image-20220430133948318

2、勾选settings里compiler中的自动配置

image-20220430134057263

3、修改Application中的Before launch为Build no error check

修改这个的主要原因就是防止直接运行过程中出现其他模块的一些报错问题。

image-20220430134442521

最后我们来运行一下:

image-20220430134545638


参考文章

[1]. Spring实现源码下载编译及导入IDEA过程图解

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。