Maven简单使用

jopen 10年前

Maven使用

http://maven.apache.org/users/index.html

maven的主要思想就是把平时常用的一些开源jar包放到集中一起管理;然后每次项目编译的时候,就去maven上找哪些依赖包的最新版本;这样就方便了,每次重新自己去下载依赖包了;

安装

sudo brew install maven    mvn --version # 检查版本

创建项目

默认创建

  1. 创建一个目录

    mkdir testmaven   cd testmaven
  2. 创建项目架构

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

创建项目的基本信息

[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0  [INFO] ----------------------------------------------------------------------------  [INFO] Parameter: groupId, Value: com.mycompany.app  [INFO] Parameter: packageName, Value: com.mycompany.app  [INFO] Parameter: package, Value: com.mycompany.app  [INFO] Parameter: artifactId, Value: my-app  [INFO] Parameter: basedir, Value: /Users/majie/temp/maventest  [INFO] Parameter: version, Value: 1.0-SNAPSHOT  [INFO] project created from Old (1.x) Archetype in dir: /Users/majie/temp/maventest/my-app

如果是第一次使用maven,那么上面的命令将会去下载最常用的 *.pom*.jar;下载完后,然后会生成一个my-app的目录;
目录结构如下:

my-app  |-- pom.xml  `-- src      |-- main      |   `-- java      |       `-- com      |           `-- mycompany      |               `-- app      |                   `-- App.java      `-- test          `-- java              `-- com                  `-- mycompany                       `-- app                           `-- AppTest.java

这个目录结构和-DgroupId=com.mycompany.app这个表示是包名, -DartifactId=my-app:项目名
-DarchetypeArtifactId=maven-archetype-quickstart: 代表项目类型

交互式创建

建议使用:

mvn archetype:generate

这个命令创建项目架构,使用交互式选择架构;这时候会列举一堆的选项,然后还有一句话,让你自己去选择,下面默认选项是336

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 336:

去336看下

336: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)

和上面打包的-DarchetypeArtifactId=maven-archetype-quickstart项目类型是一样的;那就直接回车,

Choose org.apache.maven.archetypes:maven-archetype-quickstart version:

默认是最新;

输入组织名称,默认没有,自己写一个吧;

Define value for property 'groupId': : a.b.c

输入项目名, 默认没有, 自己写

Define value for property 'artifactId': : my-project

输入创建版本, 默认(1.0-SNAPSHOT):

Define value for property 'version':  1.0-SNAPSHOT: : v.1.0

输入要创建的包名,默认组织名称的:

Define value for property 'package':  a.b.c: : x.y.z

打包

cd 到你相应的项目目录

mvn package

当前目录会生成一个target目录,

运行

java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

在命令行上就有结果了

下载的jar包和pom文件在哪里

查看配置文件maven/3.1.1/libexec/conf/setting.xml

Default: ${user.home}/.m2/repository

eclipse 创建maven 项目

安装maven插件

eclipse 官网有2个插件: m2eclipse,Eclipse IAM

http://www.iteye.com/topic/1123225

使用maven管理jee和jse网上有很多材料;
建议使用最新的eclipse安装

maven android 插件

参考一

参考二

参考二中这是一个git,这个git 主要提供了安装android-maven的插件;

  1. 前提是要安装android的SDK,并且在Path下配置ANDROID_HOME环境变量

  2. 下载这个插件

    git clone https://github.com/mosabua/maven-android-sdk-deployer.git
  3. 进入目录maven-android-sdk-deployer

    mvn install

    或者安装单个版本

    mvn -P 4.2
  4. 查看目录

    ls ~/.m2/repository

    多了一个android 目录, 进入查看文件信息,发现android-4.2.x.x.jar已经在里面了

  5. 快速创建android项目

    mvn archetype:generate

    选择

    896: remote -> ru.nikitav.android.archetypes:release (-)

    也许有时候不叫这个名字;反正你看到xxx.android.xx;你就试试,没有损失的

  6. 打包测试

    mvn package  adb install xxx.apk

    maven有个Bug, 这个Bug会导致编译android 不成功,stackoverflow上的解决方案,是安装3.0.5版本的maven
    问题描述

搞定收工

maven有点恶心的是,基本是你每次编译的时候都要去网络监测一下最新包;然后下载,这个对于网络不是很流畅的同学是真心比较慢;不过每次更新,本来就是maven的性质啦,忍忍吧~