哪个好?
- Android中的项目构建工具是Gradle,Java后台这边用的是Maven,这两个有什么区别?哪个好?
Gradle 比 Maven 好为什么用的人少?
构建工具的作用
和编码无关的工作,比如:
下载依赖、编译源码、单元测试、项目部署等等
Maven 功能
- 构建
- 文档生成
- 报告
- 依赖
- SCMs
- 发布
- 分发
- 邮件列表
Maven配置文件pom.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>
<!--项目信息-->
<groupId>com.jimisun</groupId>
<artifactId>learnmaven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--项目打包方式-->
<packaging>war</packaging>
<!--定义全局属性-->
<properties>
<spring.version>4.1.1.RELEASE</spring.version>
</properties>
<!--管理依赖-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<!--管理配置或定制插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
管理依赖
Maven通过坐标groupId:artifactId:version来标识一个唯一的二进制版本。
<!--管理依赖-->
<dependencies>
<!--添加Spring-Context的依赖-->
<dependency>
<!--标识组织-->
<groupId>org.springframework</groupId>
<!--标识项目-->
<artifactId>spring-context</artifactId>
<!--标志版本-->
<version>4.1.1.RELEASE</version>
</dependency>
</dependencies>
环境配置
根据不同环境打包不同配置文件到项目
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<resource.dir>resource/dev</resource.dir>
</properties>
</profile>
<profile>
<id>prod</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<resource.dir>resource/prod</resource.dir>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>${resource.dir}</directory>
</resource>
<resource>
<directory>resources</directory>
</resource>
</resources>
</build>
Mac安装Maven
安装JDK,这个Mac做过Android,下过Android Studio,所以JDK已经安装,不需要重复
- 通过Find(访达)切换到目录/usr/local,把解压后的文件夹拷贝过来,需要输入mac密码
- 切换到个人目录,按快捷键Command + Shift + 。(就是句号那个键),显示隐藏文件。用Sublime Text之类的编辑器打开配置文件.bash_profile
- 配置环境变量
- 检测:打开终端,输入命令mvn -v 查看是否运行正常
参考文章:https://www.jianshu.com/p/8e47f81f3f1a
Maven 构建生命周期
镜像
Maven 仓库默认在国外, 国内使用难免很慢,我们可以更换为阿里云的仓库。
- 第一步:修改 maven 根目录下的 conf 文件夹中的 setting.xml 文件,在 mirrors 节点上,添加内容如下:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
- 第二步: pom.xml文件里添加:
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Maven IntelliJ
IntelliJ IDEA 已经内建了对 Maven 的支持。IntelliJ IDEA 的一些特性列出如下:
- 可以通过 IntelliJ IDEA 来运行 Maven 目标。
- 可以在 IntelliJ IDEA 自己的终端里查看 Maven 命令的输出结果。
- 可以在 IDE 里更新 Maven 的依赖关系。
- 可以在 IntelliJ IDEA 中启动 Maven 的构建。
- IntelliJ IDEA 基于 Maven 的 pom.xml 来实现自动化管理依赖关系。
- IntelliJ IDEA 可以通过自己的工作区解决 Maven 的依赖问题,而无需安装* * 到本地的 Maven 仓库,虽然需要依赖的项目在同一个工作区。
- IntelliJ IDEA 可以自动从远程 Maven 仓库上下载需要的依赖和源码。
- IntelliJ IDEA 提供了创建 Maven 项目,pom.xml 文件的向导。
Maven的位置
Preference -> Build,Execution,Deployment->Build Tools->Maven
暂时不改
IntelliJ IDEA自带了Maven,而且和自己官网下载的最新版本一致,所以暂时不修改。具体的修改方式,可以参考下面这篇文章:
在Mac下的IntelliJ IDEA配置Maven