首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解构建脚本

理解构建脚本
EN

Stack Overflow用户
提问于 2020-11-26 16:43:34
回答 1查看 46关注 0票数 0

如何理解以下build.gradle脚本:

代码语言:javascript
复制
buildscript 
{
       repositories {
             jcenter()
       }
       dependencies {
             classpath 'com.bmuschko:gradle-tomcat-plugin:2.4.1'
       }
}

根据我的理解,repositories{}定义了dependencies{}位置。

我看到封装在dependencies中的buildscript定义了tomcat插件。但是,用这种奇怪的方式来做这件事有什么想法呢?

整个剧本:

代码语言:javascript
复制
apply plugin: 'com.bmuschko.tomcat'
apply plugin: 'eclipse-wtp'


buildscript {
       repositories {
             jcenter()
       }
       dependencies {
             classpath 'com.bmuschko:gradle-tomcat-plugin:2.4.1'
       }
}


dependencies {
         def tomcatVersion = '8.0.46'
         tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
         "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
         "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
         api 'org.apache.commons:commons-math3:3.6.1'
}


tomcat {
         httpPort = 8080
         enableSSL = true
         contextPath = '/library-spring'
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-26 17:15:25

现在,几乎所有用于Gradle的插件都已发布到Gradle插件门户中,因此Gradle知道如何解决它们,您可以简单地使用plugins块在构建脚本中定义它们:

代码语言:javascript
复制
plugins {
    id 'com.bmuschko.tomcat' version '2.5'
}

在Gradle的早期,插件只能以与任何其他库相同的方式分发,例如使用像Maven Central或Bintray这样的公共Maven存储库。通过这种方式,它们可以像其他库一样被解析,使用dependencies块来定义什么是,使用repositories块来定义要解析的所在的

使用常规repositoriesdependencies块的问题是,在计算构建脚本时加载这些依赖项。但是要评估构建脚本,插件库必须在类路径上。

因此,引入buildscript块是为了在评估实际构建脚本之前加载所有依赖项。这也是为什么buildscript块应该始终放在构建脚本中的第一位的原因:

代码语言:javascript
复制
buildscript {
    repositories {
        // where to resolve dependencies of your build script
    }
    dependencies {
        // what dependencies to resolve for your build script
    }
}

repositories {
    // where to resolve dependencies of your project code
}

dependencies {
    // what dependencies to resolve for your project code
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65026127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档