Maven是Java项目的管理及自动构建工具,基于项目对象模型(POM)。构建相关的配置文件及依赖等都保存在pom.xml中。下面将简单介绍一下如何使用Maven构建java项目。

1. Maven下载及配置(以Mac为例)

(1)从官方网站下载最新压缩包,笔者当前下载的是apache-maven-3.6.3的版本;

(2)解压到/usr/local/maven路径下;

(3)为了能够在控制台使用mvn命令,需要配置环境变量;首先运行如下命令:

vim ~/.bash_profile

然后按下“i”进入insert模式,将光标移动到最下方,添加如下两行:

export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

按下ESC退出insert模式,按下:wq保存并退出。然后执行如下命令生效环境变量:

source ~/.bash_profile

然后输入:

mvn -v

检查是否配置成功。配置成功将输出如下信息:

EverglowdeiMac:local everglow$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven/apache-maven-3.6.3
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.6", arch: "x86_64", family: "mac"

 

2. 使用Maven构建项目

最近正在学习dagger的使用,google官方提供了CoffeeApp作为学习demo,这里就以这个项目为例。

首先在IDEA中创建一个Maven项目,创建成功后在根目录下会自动生成一个pom.xml文件。

然后将daggerDemo的源码放到java目录下,这时IDEA会提示找不到dagger相关的jar包。这时我们就需要修改pom.xml添加dagger插件。使用dagger时主要依赖两个仓库:dagger和dagger-compile。添加依赖如下(<dependency>标签对中):

<?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>org.example</groupId>
    <artifactId>testDagger</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.google.dagger</groupId>
            <artifactId>dagger</artifactId>
            <version>2.28</version>
        </dependency>
        <dependency>
            <groupId>org.sonatype.sisu</groupId>
            <artifactId>sisu-inject-bean</artifactId>
            <version>1.4.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.dagger</groupId>
            <artifactId>dagger-compiler</artifactId>
            <version>2.28</version>
            <optional>true</optional>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>com.google.dagger</groupId>
                            <artifactId>dagger-compiler</artifactId>
                            <version>2.28</version>
                        </path>
                    </annotationProcessorPaths>
                    <source>6</source>
                    <target>6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

添加依赖时,我们能够看到三个子标签:groupId、artifactId以及version。这个实际上是maven坐标模式,用于表示仓库及版本的字段,各自的含义如下:

(1)groupId:类库的基础包名,能唯一标识Maven仓库的依赖类库,例如com.google.dagger;

(2)artifactId:包中的特定库名,例如dagger;

(3)version:类库的版本号,例如:2.28;

这个在安卓项目使用gradle管理依赖时也会见到,例如:

implementation 'com.android.support:appcompat-v7:25.0.1'


其中的com.android.support就是groupId,appcompat-v7就是artifactId,25.0.1就是version。


当我们不确定当前远程maven仓库是否具有这个插件或者是最新的版本时,去mvnrepository这个网站查一下就好了。

言归正传,pom.xml修改完成后,会在当前文件出现一个Load Maven Change的小图标,点击一下就会立即下载添加的依赖及依赖的依赖。

依赖下载成功后,我们可以在左侧项目管理面板的External Libraries中看到看到相关的jar包。

Java的Maven项目如何运行 maven java项目_apache

最后,build并运行项目的主入口文件,最终输出如下:

Java的Maven项目如何运行 maven java项目_Java的Maven项目如何运行_02

项目运行成功,可以愉快的继续学习Dagger啦~