Java构建工具Maven与Gradle

给你一囗甜甜゛ 提交于 2020-05-05 20:40:48

什么是构建工具?

构建工具是一个把源码生成可执行应用程序的过程自动的化的一个程序,构建包括编译,连接跟把代码打包成可用的或可行的形式。

 时下热门的两大构建工具

Maven:

a.拥有约定你知道代码放在那里,放到哪里去
b.拥有生命周期 :可以自动执行编译,测试,打包等构建过程
c.拥有依赖管理,仓库管理
d.使用pom.xml进行管理

Maven的配置文件是.pom文件。POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示。其中包含项目的基本信息,构建过程,环境信息,依赖信息等。我们可以看下面这个简单的例子:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<artifactId>iBase4J-SYS-Web</artifactId>
	<name>iBase4J-SYS-Web</name>
	<packaging>jar</packaging>
	<url>http://maven.apache.org</url>

	<parent>
		<groupId>org.ibase4j</groupId>
		<artifactId>iBase4J</artifactId>
		<version>1.3.0</version>
	</parent>

	<properties>
		<server.port>8088</server.port>
		<moduleName>SysWeb</moduleName>
		<jar.dic>${project.basedir}/../</jar.dic>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.ibase4j</groupId>
			<artifactId>iBase4J-Biz-Facade</artifactId>
			<exclusions>
				<exclusion>
					<groupId>*</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.ibase4j</groupId>
			<artifactId>iBase4J-SYS-Facade</artifactId>
			<exclusions>
				<exclusion>
					<groupId>*</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
		<!-- shiro -->
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-spring</artifactId>
			<version>${shiro.version}</version>
		</dependency>
		<!-- JSTL标签类 -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>org.dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>2.1.0</version>
		</dependency>
		<!-- excel -->
		<!-- <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> 
			<version>${jxl.version}</version> <exclusions> <exclusion> <groupId>log4j</groupId> 
			<artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> 
			<groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${poi.version}</version> 
			</dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> 
			<version>${poi.version}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> 
			<artifactId>poi-ooxml-schemas</artifactId> <version>${poi.version}</version> 
			</dependency> -->
		<!-- 文件图片处理 -->
		<dependency>
			<groupId>net.coobird</groupId>
			<artifactId>thumbnailator</artifactId>
			<version>${thumbnailator.version}</version>
		</dependency>
		<dependency>
			<groupId>com.jcraft</groupId>
			<artifactId>jsch</artifactId>
			<version>${jsch.version}</version>
		</dependency>
		<!-- swagger -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>${springfox.version}</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>${springfox.version}</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

Gradle

在MAven的pom.xml中我们需要引入一个依赖时需要将它的groupId, artifactId和version都用标签引起来。但是在gradle中的build.gradle中你会发现,仅仅需要将三者的value用:连起来,并"调用compile函数"就可以啦

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.6.RELEASE")
    }
}
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web") {
        exclude module: "spring-boot-starter-tomcat"
    }
    compile("org.springframework.boot:spring-boot-starter-security")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    testCompile("mysql:mysql-connector-java:5.1.25")
}

工作中(java web)使用的都是maven,实际我还没好好的用过gradle,做安卓的好像是使用后者居多一点,之后找个时间深入了解一下gradle

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!