将 Maven 项目转换为 Gradle 项目

boyanx3天前技术教程2

Gradle 是一个功能更丰富、更现代的 Java 构建工具,所以如果你打算从 maven 移植到 gradle 构建系统,本教程可能会对你有所帮助。

1. 将pom.xml转换为build.gradle

第一件事 – 您必须在计算机上安装 gradle。

然后,转到 maven 项目的根目录并执行命令:

$ gradle init

这将为您生成一堆文件,最重要的是一个build.gradle文件,您现在可以使用它来使用gradle命令运行所有构建。

请注意,gradle init 会自动检测 pom.xml并创建一个加载了 java 和 maven 插件的 gradle 构建。这意味着现有的 Maven 依赖项会自动转换并添加到 gradle 构建文件中。

2. 演示

让我们举个例子。在下面写了一个示例项目。pom.xml

pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.howtodoinjava</groupId>
  <artifactId>AngularSpringMVCExample</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>AngularSpringMVCExample Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>angularjs</artifactId>
            <version>1.5.7</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
  </dependencies>
 
  <build>
    <finalName>AngularSpringMVCExample</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
    </build>
</project>

我将命令运行到项目的根目录中。我得到以下输出:gradle init

执行上述命令后,将在根文件夹中生成以下文件。

build.gradle

apply plugin: 'java'
apply plugin: 'maven'
 
group = 'com.howtodoinjava'
version = '0.0.1-SNAPSHOT'
 
description = "AngularSpringMVCExample Maven Webapp"
 
sourceCompatibility = 1.7
targetCompatibility = 1.7
 
repositories {
         
     maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
    compile group: 'org.springframework', name: 'spring-context', version:'4.3.2.RELEASE'
    compile group: 'org.springframework', name: 'spring-webmvc', version:'4.3.2.RELEASE'
    runtime group: 'org.webjars', name: 'angularjs', version:'1.5.7'
    runtime group: 'org.webjars', name: 'bootstrap', version:'3.3.7'
    providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version:'3.1.0'
}

settings.gradle

rootProject.name = 'AngularSpringMVCExample'

gradlew.bat

类似的文件“gradlew”也为UNIX环境生成。此文件将项目运行到之前未完成 Gradle 设置的计算机中。例如,您从 GitHub 下载了一个项目,并希望在您的计算机上运行该项目。您需要做的就是执行特定于操作系统的gradlew文件,它将为您完成所有事情。

3. 挑战和问题

虽然转换过程看起来很容易——但并没有那么简单。由于 Gradle 和 Maven 如何看待如何构建项目,某些 Maven 功能可能会使该过程更加困难。例如:

  • 物料清单 (BOM)
  • “import”和“provided”范围
  • 可选依赖项
  • 集成测试
  • 自定义配置
  • 不太常见的 Maven 插件
  • 自定义插件
标签: todomvc

相关文章

DDD四层架构和MVC三层架构的个人理解和学习笔记

DDD的全称为Domain-driven Design,即领域驱动设计,从名字上就可以看出这里的核心就是Domain即领域。与MVC的区别DDD四成架构中的要素与传统三层架构还是挺相似的:用户界面层U...

Java单元测试浅析(JUnit+Mockito)

作者:京东物流 秦彪1. 什么是单元测试(1)单元测试环节:测试过程按照阶段划分分为:单元测试、集成测试、系统测试、验收测试等。相关含义如下:1) 单元测试: 针对计算机程序模块进行输出正确性检验工作...

Spring框架功能分为哪些模块?(spring框架包括)

Spring框架采用的是分层架构,它一系列的功能要素被分成20个模块,这些模块大体分为Core Container、Data Access/Integration、Web、AOP(Aspect Ori...

SpringMVC访问静态资源(springboot访问webapp下静态资源)

有些时候我们在使用SpringMVC的时候造成无法访问静态资源文件(如:html,js,css,image等等)。其主要的原因出在web.xml文件我们设置SpringMVC前端控制器的映射路径<...

SpringMVC学习--参数绑定(springmvc参数绑定支持的类型有哪些)

从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controll...

Springboot企业级项目开发之项目测试——性能测试!

项目开发中,完成了功能测试后一般还需要做性能测试,其原因有以下两点:目前绝大多数的应用都是Web应用,它们一般是基于网络的分布式应用,无法准确地评估其用户数量,而且用户使用场景也不确定,因此需要对项目...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。