网站升级页面模板,网站建设公司 首推万维科技,网页小游戏网站建设,wordpress建网站缺点源码编译踩坑
拉取源码
我这块以5.2.9版本为例 spring-projects/spring-framework at v5.2.9.RELEASE (github.com) 版本分析 确定版本 这块将Gradle升级到了5.6.4 #xff0c;我们去官网下载即可
Gradle安装
Gradle | Releases 解压
将其解压到你想存放的文件夹
配置环…源码编译踩坑
拉取源码
我这块以5.2.9版本为例 spring-projects/spring-framework at v5.2.9.RELEASE (github.com) 版本分析 确定版本 这块将Gradle升级到了5.6.4 我们去官网下载即可
Gradle安装
Gradle | Releases 解压
将其解压到你想存放的文件夹
配置环境变量
右键“此电脑”–“属性”–“高级系统设置”–“环境变量”–“系统变量”我们在系统变量中新增一个GRADLE_HOME值为解压后的路径修改Path变量将Gradle的bin目录添加进去在Path变量添加%GRADLE_HOME%\bin
在环境变量中配置默认的仓库地址
在系统变量中新增一个GRADLE_USER_HOME 值为仓库路径
验证
默认下载依赖会在当前目录下 注释掉
安全导入 不信任
等配置结束后在信任文件 这些配置都看一下 修改版本
plugins {id io.spring.dependency-management version 1.0.9.RELEASE apply false//id io.spring.gradle-enterprise-conventions version 0.0.2id io.spring.nohttp version 0.0.5.RELEASEid org.jetbrains.kotlin.jvm version 1.3.72 apply falseid org.jetbrains.dokka version 0.10.1 apply falseid org.asciidoctor.jvm.convert version 2.4.0id de.undercouch.download version 4.1.1id io.freefair.aspectj version 4.1.6 apply falseid com.gradle.build-scan version 3.2id com.jfrog.artifactory version 4.24.20 apply falseid com.github.ben-manes.versions version 0.24.0
}因为spring是使用gradle打包的我们在编译前先配置下gradle的国内镜像找到项目里面的build.gradle文件在repositories中添加代码保存如下图
repositories {mavenCentral()maven { url https://maven.aliyun.com/repository/public }maven { url https://maven.aliyun.com/repository/spring-plugin }maven { url https://maven.aliyun.com/nexus/content/groups/public/ }maven { url https://maven.aliyun.com/nexus/content/repositories/spring-plugin }maven { url http://maven.aliyun.com/nexus/content/repositories/google }maven { url https://repo.spring.io/libs-spring-framework-build }}gradle.properties
version5.2.9.RELEASE
## 设置此参数主要是编译下载包会占用大量的内存可能会内存溢出
org.gradle.jvmargs-Xmx2048M
## 开启 Gradle 缓存
org.gradle.cachingtrue
## 开启并行编译
org.gradle.paralleltrue
## 启用新的孵化模式
org.gradle.configureondemandtrue
## 开启守护进程 通过开启守护进程下一次构建的时候将会连接这个守护进程进行构建而不是重新fork一个gradle构建进程
org.gradle.daemontrue等待构建 时间取决于网络 完成
测试
忒慢 说到最后
本项目只需要修改两个文件 gradle.properties和build.gradle 下面给出完整内容 gradle.properties完整文件内容
version5.2.9.RELEASE
## 设置此参数主要是编译下载包会占用大量的内存可能会内存溢出
org.gradle.jvmargs-Xmx2048M
## 开启 Gradle 缓存
org.gradle.cachingtrue
## 开启并行编译
org.gradle.paralleltrue
## 启用新的孵化模式
org.gradle.configureondemandtrue
## 开启守护进程 通过开启守护进程下一次构建的时候将会连接这个守护进程进行构建而不是重新fork一个gradle构建进程
org.gradle.daemontruebuild.gradle完整文件内容
plugins {id io.spring.dependency-management version 1.0.9.RELEASE apply false//id io.spring.gradle-enterprise-conventions version 0.0.2id io.spring.nohttp version 0.0.5.RELEASEid org.jetbrains.kotlin.jvm version 1.3.72 apply falseid org.jetbrains.dokka version 0.10.1 apply falseid org.asciidoctor.jvm.convert version 2.4.0id de.undercouch.download version 4.1.1id io.freefair.aspectj version 4.1.6 apply falseid com.gradle.build-scan version 3.2id com.jfrog.artifactory version 4.24.20 apply falseid com.github.ben-manes.versions version 0.24.0
}apply from: $rootDir/gradle/build-scan-user-data.gradle
ext {moduleProjects subprojects.findAll { it.name.startsWith(spring-) }javaProjects subprojects - project(:framework-bom)withoutJclOverSlf4j {exclude group: org.slf4j, name: jcl-over-slf4j}
}configure(allprojects) { project -apply plugin: io.spring.dependency-managementdependencyManagement {imports {mavenBom com.fasterxml.jackson:jackson-bom:2.10.5mavenBom io.netty:netty-bom:4.1.51.FinalmavenBom io.projectreactor:reactor-bom:Dysprosium-SR12mavenBom io.rsocket:rsocket-bom:1.0.1mavenBom org.eclipse.jetty:jetty-bom:9.4.31.v20200723mavenBom org.jetbrains.kotlin:kotlin-bom:1.3.72mavenBom org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.3.5mavenBom org.junit:junit-bom:5.6.2}dependencies {dependencySet(group: org.apache.logging.log4j, version: 2.13.3) {entry log4j-apientry log4j-coreentry log4j-slf4j-implentry log4j-jul}dependency org.slf4j:slf4j-api:1.7.30dependency com.google.code.findbugs:jsr305:3.0.2dependencySet(group: org.aspectj, version: 1.9.6) {entry aspectjrtentry aspectjtoolsentry aspectjweaver}dependencySet(group: org.codehaus.groovy, version: 2.5.13) {entry groovyentry groovy-jsr223entry groovy-templatesentry groovy-testentry groovy-xml}dependency io.reactivex:rxjava:1.3.8dependency io.reactivex:rxjava-reactive-streams:1.2.1dependency io.reactivex.rxjava2:rxjava:2.2.19dependency io.projectreactor.tools:blockhound:1.0.2.RELEASEdependency com.caucho:hessian:4.0.63dependency com.fasterxml:aalto-xml:1.2.2dependency(com.fasterxml.woodstox:woodstox-core:6.2.1) {exclude group: stax, name: stax-api}dependency com.google.code.gson:gson:2.8.6dependency com.google.protobuf:protobuf-java-util:3.11.4dependency com.googlecode.protobuf-java-format:protobuf-java-format:1.4dependency(com.thoughtworks.xstream:xstream:1.4.11.1) {exclude group: xpp3, name: xpp3_minexclude group: xmlpull, name: xmlpull}dependency org.apache.johnzon:johnzon-jsonb:1.2.8dependency(org.codehaus.jettison:jettison:1.3.8) {exclude group: stax, name: stax-api}dependencySet(group: org.jibx, version: 1.3.3) {entry jibx-bindentry jibx-run}dependency org.ogce:xpp3:1.1.6dependency org.yaml:snakeyaml:1.26dependency com.h2database:h2:1.4.200dependency com.github.ben-manes.caffeine:caffeine:2.8.5dependency com.github.librepdf:openpdf:1.3.20dependency com.rometools:rome:1.12.2dependency commons-io:commons-io:2.5dependency io.vavr:vavr:0.10.3dependency net.sf.jopt-simple:jopt-simple:5.0.4dependencySet(group: org.apache.activemq, version: 5.8.0) {entry activemq-brokerentry(activemq-kahadb-store) {exclude group: org.springframework, name: spring-context}entry activemq-stomp}dependency org.apache.bcel:bcel:6.0dependency org.apache.commons:commons-pool2:2.8.0dependencySet(group: org.apache.derby, version: 10.14.2.0) {entry derbyentry derbyclient}dependency org.apache.poi:poi-ooxml:4.1.2dependency org.apache-extras.beanshell:bsh:2.0b6dependency org.freemarker:freemarker:2.3.30dependency org.hsqldb:hsqldb:2.5.1dependency org.quartz-scheduler:quartz:2.3.2dependency org.codehaus.fabric3.api:commonj:1.1.0dependency net.sf.ehcache:ehcache:2.10.6dependency org.ehcache:jcache:1.0.1dependency org.ehcache:ehcache:3.4.0dependency org.hibernate:hibernate-core:5.4.21.Finaldependency org.hibernate:hibernate-validator:6.1.5.Finaldependency org.webjars:webjars-locator-core:0.45dependency org.webjars:underscorejs:1.8.3dependencySet(group: org.apache.tomcat, version: 9.0.37) {entry tomcat-utilentry(tomcat-websocket) {exclude group: org.apache.tomcat, name: tomcat-websocket-apiexclude group: org.apache.tomcat, name: tomcat-servlet-api}}dependencySet(group: org.apache.tomcat.embed, version: 9.0.37) {entry tomcat-embed-coreentry tomcat-embed-websocket}dependencySet(group: io.undertow, version: 2.0.31.Final) {entry undertow-coreentry(undertow-websockets-jsr) {exclude group: org.jboss.spec.javax.websocket, name: jboss-websocket-api_1.1_spec}entry(undertow-servlet) {exclude group: org.jboss.spec.javax.servlet, name: jboss-servlet-api_3.1_specexclude group: org.jboss.spec.javax.annotation, name: jboss-annotations-api_1.2_spec}}dependencySet(group: com.squareup.okhttp3, version: 3.14.9) {entry okhttpentry mockwebserver}dependency(org.apache.httpcomponents:httpclient:4.5.12) {exclude group: commons-logging, name: commons-logging}dependency(org.apache.httpcomponents:httpasyncclient:4.1.4) {exclude group: commons-logging, name: commons-logging}dependency org.eclipse.jetty:jetty-reactive-httpclient:1.1.4dependency org.jruby:jruby:9.2.11.1dependency org.python:jython-standalone:2.7.1dependency org.mozilla:rhino:1.7.11dependency commons-fileupload:commons-fileupload:1.4dependency org.synchronoss.cloud:nio-multipart-parser:1.1.0dependency(dom4j:dom4j:1.6.1) {exclude group: xml-apis, name: xml-apis}dependency(jaxen:jaxen:1.1.1) {exclude group: xml-apis, name: xml-apisexclude group: xom, name: xomexclude group: xerces, name: xercesImpl}dependency(junit:junit:4.12) {exclude group: org.hamcrest, name: hamcrest-core}dependency(de.bechte.junit:junit-hierarchicalcontextrunner:4.12.1) {exclude group: junit, name: junit}dependency org.testng:testng:6.14.3dependency org.hamcrest:hamcrest:2.1dependency org.awaitility:awaitility:3.1.6dependency org.assertj:assertj-core:3.17.2dependencySet(group: org.xmlunit, version: 2.6.2) {entry xmlunit-assertjentry(xmlunit-matchers) {exclude group: org.hamcrest, name: hamcrest-core}}dependencySet(group: org.mockito, version: 3.3.3) {entry(mockito-core) {exclude group: org.hamcrest, name: hamcrest-core}entry mockito-junit-jupiter}dependency io.mockk:mockk:1.10.0dependency(net.sourceforge.htmlunit:htmlunit:2.43.0) {exclude group: commons-logging, name: commons-logging}dependency(org.seleniumhq.selenium:htmlunit-driver:2.43.1) {exclude group: commons-logging, name: commons-logging}dependency(org.seleniumhq.selenium:selenium-java:3.141.59) {exclude group: commons-logging, name: commons-loggingexclude group: io.netty, name: netty}dependency org.skyscreamer:jsonassert:1.5.0dependency com.jayway.jsonpath:json-path:2.4.0dependencySet(group: org.apache.tiles, version: 3.0.8) {entry tiles-apientry(tiles-core, withoutJclOverSlf4j)entry(tiles-servlet, withoutJclOverSlf4j)entry(tiles-jsp, withoutJclOverSlf4j)entry(tiles-el, withoutJclOverSlf4j)entry(tiles-extras) {exclude group: org.springframework, name: spring-webexclude group: org.slf4j, name: jcl-over-slf4j}}dependency(org.apache.taglibs:taglibs-standard-jstlel:1.2.5) {exclude group: org.apache.taglibs, name: taglibs-standard-spec}dependency com.ibm.websphere:uow:6.0.2.17dependency com.jamonapi:jamon:2.82dependency joda-time:joda-time:2.10.6dependency org.eclipse.persistence:org.eclipse.persistence.jpa:2.7.7dependency org.javamoney:moneta:1.3dependency com.sun.activation:javax.activation:1.2.0dependency com.sun.mail:javax.mail:1.6.2dependencySet(group: com.sun.xml.bind, version: 2.3.0.1) {entry jaxb-coreentry jaxb-implentry jaxb-xjc}dependency javax.activation:javax.activation-api:1.2.0dependency javax.annotation:javax.annotation-api:1.3.2dependency javax.cache:cache-api:1.1.0dependency javax.ejb:javax.ejb-api:3.2dependency javax.el:javax.el-api:3.0.1-b04dependency javax.enterprise.concurrent:javax.enterprise.concurrent-api:1.0dependency javax.faces:javax.faces-api:2.2dependency javax.inject:javax.inject:1dependency javax.inject:javax.inject-tck:1dependency javax.interceptor:javax.interceptor-api:1.2.2dependency javax.jms:javax.jms-api:2.0.1dependency javax.json:javax.json-api:1.1.4dependency javax.json.bind:javax.json.bind-api:1.0dependency javax.mail:javax.mail-api:1.6.2dependency javax.money:money-api:1.0.3dependency javax.resource:javax.resource-api:1.7.1dependency javax.servlet:javax.servlet-api:4.0.1dependency javax.servlet.jsp:javax.servlet.jsp-api:2.3.2-b02dependency javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1dependency javax.transaction:javax.transaction-api:1.3dependency javax.validation:validation-api:2.0.1.Finaldependency javax.websocket:javax.websocket-api:1.1dependency javax.xml.bind:jaxb-api:2.3.1dependency javax.xml.ws:jaxws-api:2.3.1dependency org.eclipse.persistence:javax.persistence:2.2.0// Substitute for javax.management:jmxremote_optional:1.0.1_04 which// is not available on Maven Centraldependency org.glassfish.external:opendmk_jmxremote_optional_jar:1.0-b01-eadependency org.glassfish:javax.el:3.0.1-b08dependency org.glassfish.main:javax.jws:4.0-b33dependency org.glassfish.tyrus:tyrus-container-servlet:1.13.1}generatedPomCustomization {enabled false}resolutionStrategy {cacheChangingModulesFor 0, seconds}repositories {mavenCentral()maven { url https://maven.aliyun.com/repository/public }maven { url https://maven.aliyun.com/repository/spring-plugin }maven { url https://maven.aliyun.com/nexus/content/groups/public/ }maven { url https://maven.aliyun.com/nexus/content/repositories/spring-plugin }maven { url http://maven.aliyun.com/nexus/content/repositories/google }maven { url https://repo.spring.io/libs-spring-framework-build }}}configurations.all {resolutionStrategy {cacheChangingModulesFor 0, secondscacheDynamicVersionsFor 0, seconds}}
}configure([rootProject] javaProjects) { project -group org.springframeworkapply plugin: javaapply plugin: java-test-fixturesapply plugin: checkstyleapply plugin: org.springframework.build.compileapply from: ${rootDir}/gradle/custom-java-home.gradleapply from: ${rootDir}/gradle/ide.gradlepluginManager.withPlugin(kotlin) {apply plugin: org.jetbrains.dokkacompileKotlin {kotlinOptions {jvmTarget 1.8freeCompilerArgs [-Xjsr305strict]allWarningsAsErrors true}}compileTestKotlin {kotlinOptions {jvmTarget 1.8freeCompilerArgs [-Xjsr305strict]}}}test {useJUnitPlatform()include([**/*Tests.class, **/*Test.class])systemProperty(java.awt.headless, true)systemProperty(testGroups, project.properties.get(testGroups))systemProperty(io.netty.leakDetection.level, paranoid)}checkstyle {toolVersion 8.36.1configDir rootProject.file(src/checkstyle)}dependencies {testCompile(org.junit.jupiter:junit-jupiter-api)testCompile(org.junit.jupiter:junit-jupiter-params)testCompile(org.mockito:mockito-core)testCompile(org.mockito:mockito-junit-jupiter)testCompile(io.mockk:mockk)testCompile(org.assertj:assertj-core)// Pull in the latest JUnit 5 Launcher API to ensure proper support in IDEs.testRuntime(org.junit.platform:junit-platform-launcher)testRuntime(org.junit.jupiter:junit-jupiter-engine)testRuntime(org.apache.logging.log4j:log4j-core)testRuntime(org.apache.logging.log4j:log4j-slf4j-impl)testRuntime(org.apache.logging.log4j:log4j-jul)// JSR-305 only used for non-required meta-annotationscompileOnly(com.google.code.findbugs:jsr305)testCompileOnly(com.google.code.findbugs:jsr305)checkstyle(io.spring.javaformat:spring-javaformat-checkstyle:0.0.15)}ext.javadocLinks [https://docs.oracle.com/javase/8/docs/api/,https://docs.oracle.com/javaee/7/api/,https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/, // CommonJhttps://www.ibm.com/support/knowledgecenter/SS7JFU_8.5.5/com.ibm.websphere.javadoc.doc/web/apidocs/,https://glassfish.java.net/nonav/docs/v3/api/,https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/,https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/,https://tiles.apache.org/tiles-request/apidocs/,https://tiles.apache.org/framework/apidocs/,https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/,https://www.ehcache.org/apidocs/2.10.4/,https://www.quartz-scheduler.org/api/2.3.0/,https://fasterxml.github.io/jackson-core/javadoc/2.10/,https://fasterxml.github.io/jackson-databind/javadoc/2.10/,https://fasterxml.github.io/jackson-dataformat-xml/javadoc/2.10/,https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/,https://junit.org/junit4/javadoc/4.12/,https://junit.org/junit5/docs/5.6.2/api/] as String[]
}configure(moduleProjects) { project -apply from: ${rootDir}/gradle/spring-module.gradle
}configure(rootProject) {description Spring Frameworkapply plugin: groovyapply plugin: kotlinapply plugin: io.spring.nohttpapply plugin: org.springframework.build.api-diffapply from: ${rootDir}/gradle/publications.gradleapply from: ${rootDir}/gradle/docs.gradlenohttp {source.exclude **/test-output/**allowlistFile project.file(src/nohttp/allowlist.lines)def rootPath file(rootDir).toPath()def projectDirs allprojects.collect { it.projectDir } ${rootDir}/buildSrcprojectDirs.forEach { dir -[ bin, build, out, .settings ].collect { rootPath.relativize(new File(dir, it).toPath()) }.forEach { source.exclude $it/** }[ .classpath, .project ].collect { rootPath.relativize(new File(dir, it).toPath()) }.forEach { source.exclude $it }}}publishing {publications {mavenJava(MavenPublication) {artifact docsZipartifact schemaZipartifact distZip}}}
}