springmvc源码下载_web系统源码下载

springmvc源码下载_web系统源码下载Spring源码下载、编译Spring源码下载Spring源码编译1、新增下载源地址2、修改依赖地址三级目录Spring源码下载注意:Spring源码使用的是Gradle,而不是Maven。因此下载Spring源码之前可以先安装Gradle,参考:Gradle的下载、安装和配置环境。Spring源码gitee地址:https://gitee.com/mirrors/Spring-Framework。Spring源码gitee仓库地址:https://gitee.com/mirrors/Spring

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Spring源码下载

注意:Spring源码使用的是Gradle,而不是Maven。因此下载Spring源码之前可以先安装Gradle,注意安装的gradle版本与spring源码中gradle-wrapper.properties文件中指定的gradle版本一致。参考:Gradle的下载、安装和配置环境
Spring源码gitee地址:https://gitee.com/mirrors/Spring-Framework
Spring源码gitee仓库地址:

https://gitee.com/mirrors/Spring-Framework.git

Spring源码github地址:https://github.com/spring-projects/spring-framework
Spring源码github仓库地址:

https://github.com/spring-projects/spring-framework.git

从远程仓库下载项目的流程,参考:idea下载git仓库中的项目

Spring源码保存gitee仓库

将下载的Spring源码保存到自己的gitee仓库中方便源码学习过程中对源码注释提交到gitee仓库。也可以保存调试Spring源码的测试代码。
gtiee个人仓库的创建参考:将本地项目提交到Gitee远程仓库

1、需改远程仓库地址

选中Git中的Repository中的Remotes
在这里插入图片描述
将git仓库地址从Spring源码地址修改为自己的git仓库地址
在这里插入图片描述

2、将Spring源码推送到自己仓库

将spring源码推送到自己的远程仓库
在这里插入图片描述

Spring源码编译

1、新增下载源地址

在settings.gradle和build.gradle两个配置文件中新增阿里云仓库地址。
settings.gradle配置文件

repositories { 
   
	//spring源码中已有的配置
	gradlePluginPortal()
	//新增的阿里云仓库地址的配置
	maven { 
    url 'https://maven.aliyun.com/nexus/content/groups/public/' }
	//新增的阿里云仓库地址的配置
	maven { 
    url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
	//spring源码中已有的配置
	maven { 
    url "https://repo.spring.io/plugins-release" }
	}

build.gradle配置文件

repositories { 
   
	//新增的阿里云仓库地址的配置
	maven { 
    url 'https://maven.aliyun.com/nexus/content/groups/public/' }
	//新增的阿里云仓库地址的配置
	maven { 
    url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
	//spring源码中已有的配置
	mavenCentral()
	//spring源码中已有的配置
	maven { 
    url "https://repo.spring.io/libs-spring-framework-build" }
}

2、修改gradle版本

修改gradle-wrapper.properties配置文件中的配置,可以修改gradle的版本和下载的gradle存放的位置。一般不做修改。

#distributionBase和distributionPath组合在一起,是gradle压缩包解压后的文件的存放位置。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#使用哪个版本的gradle,就在这里修改。gradle-##-all.zip是二进制版,只包含二进制文件(可执行文件)
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
#zipStoreBase和zipStorePath组合在一起,是下载的gradle的压缩包的存放位置
#环境变量GRADLE_USER_HOME的值
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

#gradle-##-all.zip是完整版,包含二进制文件、源代码文件和离线文档
#指定gradle的版本为本地存储的版本。
#distributionUrl=file:///D:/worktools/Gradle/gradle-7.2-all.zip
#将gradle-7.2-all.zip压缩包放到wrapper目录下。
#distributionUrl=gradle-7.2-all.zip

如果不想根据指定的路径去下载gradle。可以修改distributionUrl的值。
如果将gradle-7.2-all.zip压缩包与gradle-wrapper.properties配置文件放到同一目录下,那么直接指定distributionUrl=gradle-7.2-all.zip。弊端是:压缩包超过100M,无法推送到gitee上。
如果是指定本地存储的gradle,那么可以指定distributionUrl=file:///D:/worktools/Gradle/gradle-7.2-all.zip。弊端是:每个人本地存储路径不同。协作开发时,每个人都需要更改配置文件。

源码编译时遇到的问题

1、找不到jar包的问题

编译时,可以编译成功,但是会有jar包找不到的问题。

Errors occurred while build effective model from D:\worktools\Gradle\gradle_repository\caches\modules-2\files-2.1\com.alibaba\druid\1.2.6\c57198d77a31adf5bd36d35f9b12dc936b732587\druid-1.2.6.pom:
    'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${ 
   project.basedir}/lib/openjdk-1.8-tools.jar in com.alibaba:druid:1.2.6
    'dependencies.dependency.systemPath' for com.sun:jconsole:jar must specify an absolute path but is ${ 
   project.basedir}/lib/openjdk-1.8-jconsole.jar in com.alibaba:druid:1.2.6

解决方案一:
根据报错信息中给出的路径找到文件,将文件中的依赖注释掉

<!--找不到以下两个jar包,将jar包的引入注释掉
<dependency>
	<groupId>com.sun</groupId>
	<artifactId>tools</artifactId>
	<version>1.8</version>
	<scope>system</scope>
	<systemPath>${ 
   project.basedir}/lib/openjdk-1.8-tools.jar</systemPath>
</dependency>

<dependency>
	<groupId>com.sun</groupId>
	<artifactId>jconsole</artifactId>
	<version>1.8</version>
	<scope>system</scope>
	<systemPath>${ 
   project.basedir}/lib/openjdk-1.8-jconsole.jar</systemPath>
</dependency>
-->

解决方案二:
根据错误信息中给出的缺少的jar包,如果本地有这个jar包,那么将systemPath中的路径修改为绝对路径即可。

<dependency>
	<groupId>com.sun</groupId>
	<artifactId>tools</artifactId>
	<version>1.8</version>
	<scope>system</scope>
	<!--将jar包路径修改为绝对路径-->
	<systemPath>D:/worktools/jdk/jdk-11.0.11/lib/openjdk-1.8-tools.jar</systemPath>
</dependency>

<dependency>
	<groupId>com.sun</groupId>
	<artifactId>jconsole</artifactId>
	<version>1.8</version>
	<scope>system</scope>
	<!--将jar包路径修改为绝对路径-->
	<systemPath>D:/worktools/jdk/jdk-11.0.11/lib/openjdk-1.8-jconsole.jar</systemPath>
</dependency>

如果本地没有提示中缺少的jar包,如果必须使用该jar包,那么需要寻找jar包资源,将然后将存放jar的绝对路径写到配置文件中。如果不适用jar包中的内容,那么可以创建一个txt文件,命名为jar缺失的jar包名称,将后缀改为.jar,同样需要将jar包的绝对路径写到配置文件中。

2、JDK版本不对应的问题

本地配置的Java的环境变量的JDK版本要与spring源码要求的版本对应。不然会有一下错误:无效的源发行版:17。
在这里插入图片描述
我现在的最新的spring源码,使用的是jdk17。
在编译之前查看spring要求的JDK版本:查看Spring编译要使用的JDK
注意:要修改Java的环境变量中的jdk版本,只修改项目使用JDK是无效的。

3、编译时可能出现的警告

编译时可能会有以下警告。

Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

在Settings中搜过async,然后将Instrumenting agent的勾选去掉,警告就没有了。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170016.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • J1939入门(一)[通俗易懂]

    J1939入门(一)[通俗易懂]J1939概述SAEJ1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,广泛用于是商用车(重卡、大客车等道路车辆和工程机械、农业机械、轨道机车、船舶等非道路车辆及设备)上电子部件间的数字通讯。

    2022年6月10日
    32
  • 读取本地数据库文件[通俗易懂]

    读取本地数据库文件

    2022年1月28日
    33
  • 计算机考研数据库题库及答案_数据结构历年考研真题

    计算机考研数据库题库及答案_数据结构历年考研真题在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()。A.充分必要条件B.必要条件C.充分条件D.既不充分也不必要条件。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段。在关系模式R(U,F)中,Y∈XF+是X→Y是否成立的()。A.数据库系统B.文件系统C.人工管理D.数据项管理。A.网络系统B.数据库系统C.操作系统D.数据库。A.外模式B.内模式C.存储模式D.模式。…

    2022年10月26日
    0
  • 详解Linux双网卡绑定之bond0「建议收藏」

    1、什么是bond?  网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。Kernels2.4.12及以后的版本均供bonding模块,以前的版本可以通过patch实现。2、实现原理:  网卡工作在混杂(promisc)模式,接收到达网卡的所有数据包,tcpdump工作用的也是混杂模式(promisc),将两块网卡的MAC地址…

    2022年4月1日
    63
  • django开发从入门到实战pdf_Helloworld是什么意思

    django开发从入门到实战pdf_Helloworld是什么意思本系列教程是讲述Django框架的,如果你正在看本教程那么你应该对Django已经有了初步的了解,简而言之Django就是一个基于Python的Web开发框架。在学习Django之前最好有Python基础,如果没有Python基础但是有别的开发经验(例如Java、.NET)学习Django也是非常容易的。

    2022年9月7日
    0
  • USACO maze1 BFS

    USACO maze1 BFS

    2022年1月7日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号