1. Gradle 与 Maven 的区别

本文对比了Gradle和Maven这两种构建工具的特点。Gradle使用Groovy语言配置,简化了构建过程,使得代码更清晰简洁。同时,Gradle支持Maven仓库,提供了Maven pom.xml到Gradle脚本的转换工具。

之前学过 Maven, 虽然已经没什么印象了, 但还是清楚如何配置和管理的.

但是今天上班第一次接触 Gradle. 连导入都导入不成功, 因此需要相对系统的学习, 记录笔记.


Gradle 和 Maven 都是项目工具 - build automation system, 但是 Gradle 的有点在于不是用 XML 的繁琐配置 (Mavan 是基于 XML 配置). 取而代之, Gradle 采用了 Groovy 语言去配置, (Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, etc.). 因此大大简化了构建代码的行数.


E.g: Maven 版本: 省略了 POM 配置和其他依赖.

<properties>
<kaptcha.version>2.3</kaptcha.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>

</dependencies>


相比之下, Gradle 的配置脚本十分简略.

E.g Gradle 版本: 

dependencies {
    compile('org.springframework:spring-core:2.5.6')
    compile('org.springframework:spring-beans:2.5.6')
    compile('org.springframework:spring-context:2.5.6')
    compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
    testCompile('junit:junit:4.7')

}


大大的省略了很多繁琐的配置步骤, 因此可以让代码更加清晰, 简洁. 此外也想当灵活, 配置只需要几行代码就能完成. 因此现在很多大公司都是用 Gradle 进行开发. 然而, Gradle 完全支持用于发布或检索依赖的 Maven 或 Ivy 仓库. Gradle 同样提供了一个转换器,用于将一个 Maven pom.xml 文件转换为一个 Gradle 脚本. Maven 项目的运行时导入的功能将很快会有.

### 解决 Gradle 加载 MavenPlugin 类失败的问题 当遇到 `Unable to load class 'org.gradle.api.plugins.MavenPlugin'` 错误时,这通常意味着项目配置文件中存在不兼容或错误设置。以下是详细的解决方案: #### 1. 更新 Gradle 版本 确保使用的 Gradle 和 Android 插件版本相匹配非常重要。如果使用较旧的 Gradle 或插件版本可能会导致此类问题。 对于 Gradle Wrapper 文件 (`gradle-wrapper.properties`) 中的分发 URL 应该更新至最新稳定版,例如: ```properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip ``` 同时,在项目的根目录下的 `build.gradle` 文件里也需要同步调整依赖项版本号以保持一致[^2]: ```groovy classpath 'com.android.tools.build:gradle:4.2.2' ``` #### 2. 添加必要的 ClassPath 依赖 为了使 Maven Plugin 正常工作,还需要引入相应的 maven-publish plugin 的 classpath 依赖。可以在顶级 build script 下面添加如下代码片段来声明所需的库路径: ```groovy dependencies { classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' } ``` 请注意这里指定的是特定版本 (即 1.3),可以根据实际情况选择更合适的版本[^1]。 #### 3. 清理缓存并重新构建项目 有时本地缓存可能导致一些意想不到的行为。尝试清理整个项目的构建缓存,并执行一次完整的重建操作可以帮助解决问题。可以通过命令行运行以下指令完成此过程: ```bash ./gradlew cleanBuildCache assembleDebug ``` 以上措施应该能够有效解决无法加载 MavenPlugin 类的问题。如果有其他相关疑问或者遇到了新的挑战,请继续查阅文档或其他资源获取帮助。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值