最近很火热的12306的订票软件go-home,我也下载了一份下来了,使用了一下,也从svn中把代码down下来了,但是在eclipse中竟然出错了,依赖的jar包都没有找到,后来才知道人家是用maven来管理依赖的,所以就去看了下maven,发现还真是很强大很方便的一个工具,特记录一下简单的配置和使用。

首先是下载,给个地址就行了,太多的就不用说了。下载地址:http://maven.apache.org/download.html

接下来就是配置咯,下载下来了总得能运行才行嘛。

maven的运行依赖一下几个环境变量:M2_HOMEM2JAVA_HOME,另外需要在path中保证有M2和%JAVA_HOME%\bin

解压maven到本地后,在环境变量中新建名为M2_HOME,值为本地maven路径的值;增加名为M2,值为%M2_HOME%\bin的环境变量,并将%M2_HOME%\bin加到Path中,最基本的JAVA_HOME需要指定到本地jdk的目录。

以上几个环境变量的设置结束之后,在命令行cmd中输入mvn -version,能正确的出现结果则表示配置完成了。

最后跑一下示例,在命令行中输入:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
maven此时第一次运行,会自动下载常用的些依赖包和一些其他文件到本地仓库,由于网络原因,可能会需要多次执行该命令才能最终成功。成功后,此时maven已经将我们的项目结构建立起来了,在执行命令行的目录中,已经创建了一个叫my-app的目录了,项目的目录结构如下:
my-app
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java

src/main目录中存放java代码,src\test目录中存放测试代码。

跟ant脚本类似,ant需要build.xml,而maven需要的是pom.xml。pom.xml中描述了项目中的依赖关系,需要那些jar,配置一下,maven会自动帮你从网上下载所需要的包。pom.xml文件的详细介绍留着下次在说吧。

项目创建出来了之后就该打包编译了,使用mvn package命令即可。build成功之后使用以下命令则可以执行打包好的jar包。

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

结果会输出:Hello World!

maven常用的一些其他的命令:

  • validate 验证项目必须信息的完整性
  • test 运行单元测试代码
  • verify 验证包
  • install 安装本地jar包到仓库
  • deploy 部署项目
  • compile 编译项目
  • package 打包项目
  • clean 清除之前的build结果
  • site 生成项目文档
  • integration-test

还有一个很方便的地方,就是可以在一个命令中干多件事情,例如:

mvn clean dependency:copy-dependencies package

上面的命令会先清理项目的输出,然后拷贝依赖,最后打包项目。

了解了maven的基本知识之后,对于svn出来的go-home代码已经有办法处理了。安装maven之后,直接mvn package就ok了,让maven自动去下载所需要的依赖,不成功多试几下将所有的依赖都下载完之后就可以正常编译成功了。对于想改进该软件的同志们,可以修改后发布新版本咯。

Java开发Maven环境配置和介绍的更多相关文章

  1. Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置

    此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...

  2. linux下JAVA开发的环境配置

    1.去http: //java.sun.com/j2se/1.4.2/download.html 下载一个Linux Platform的JDK,建议下载RPM自解压格式的(RPM in self-ex ...

  3. Mac 下 java环境 maven环境配置

    java环境配置 下载jdk,按照提示安装 我下的是1.8.0版本,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8- ...

  4. java 环境配置 maven 环境配置

    1.windows 下Java 环境的安装和配置: 下载jdk并安装 配置环境变量: (1) 新建JAVA_HOME环境变量,赋值为JDK的安装目录: (2) 新建CLASSPATH环境变量,赋值为. ...

  5. selenium+java+testNG+maven环境搭建

    一.简单介绍 1.selenium: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Fir ...

  6. Mac IntelliJ IDEA 2017(java开发集成环境)附注册码和破解教程 v2017.3.5破解版

    原文:http://www.orsoon.com/Mac/155938.html 原文中含有软件下载地址 软件介绍 IntelliJ IDEA 2017 Mac激活版是Mac平台上的一款java开发集 ...

  7. Java-Maven-Runoob:Maven环境配置

    ylbtech-Java-Maven-Runoob:Maven环境配置 1.返回顶部 1. Maven 环境配置 Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK. 如果 ...

  8. 【第二篇】- Maven 环境配置之Spring Cloud直播商城 b2b2c电子商务技术总结

    Maven 环境配置 Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK. 如果你还未安装 JDK,可以参考我们的 Java 开发环境配置. 系统要求 项目 要求 JDK ...

  9. Java-Maven(四):Eclipse集成Maven环境配置

    一般maven都需要集成到IDE上使用的,而不是单独的使用,常见的maven可集成IDE:eclipse.IntelliJ IDEA.但这里就只学习eclipse集成maven的基础上,进行maven ...

随机推荐

  1. MySQL基础(三)——约束

    MySQL基础(三)--约束 约束是在表上强制执行的数据校验规则,主要用于维护表中数据的完整性以及当数据之间有以来关系时,保护相关的数据不会被删除. 根据约束对列的限制,可以划分为:单列约束(只约束一 ...

  2. drawRect导致内存暴增的真正原因

    那么现在我们分析一下drawRect导致内存暴增的真正原因: 重写drawRect为何会导致内存大量上涨? 要想搞明白这个问题,我们需要撸一撸在 iOS 程序上图形显示的原理.在 iOS 系统中所有显 ...

  3. 分别向Set集合以及List集合中添加"A"、"a"、"c"、"C"、"a",观察重复值"a"能否添加成功

    package lianxi; import java.util.*; public class JhSet { public static void main(String[] args) { Se ...

  4. GoAccess日志分析工具使用文档

    ----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不 ...

  5. 清除SVN获取文件的所有.svn文件夹

    Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\清除SVN信息] @=&qu ...

  6. unity3d中asset store 的资源下载到本地的目录位置

    来源:http://blog.csdn.net/fzhlee/article/details/8613688 C:/Users/[当前用户]/AppData/Roaming/Unity/Asset S ...

  7. HDU-4511 小明系列故事——女友的考验 floyd变种-标号递增最短路

    题意:给定N个点,现在要求出从1号点到N号点的最短路.题目给的限制条件就是对于某条路径是不能够走的,但是可以选择某段路径走,另外就是所走的路径的标号必须是递增的. 分析:由于给定的是一些列的坐标点,这 ...

  8. Eclipse小技巧--快速输入System.out.println();(转)

    步骤1:指定“Content Assist”的快捷键,参考:善用 Eclipse 组合键,提高输入效率 步骤2:输入源代码是,先输入sysout,然后输入辅助快捷键:Alt+/,这样就可以自动生成:S ...

  9. sqlplus入门基础语句

    关于Oracle 首先Oracle一个数据库由若干个表空间组成,每个表空间由若干个数据文件(或设备)组成,每个数据文件由若干个盘区组成,每个盘区由若干个block组成.这是Oracle的物理结构. 逻 ...

  10. python中的for循环

    打印出1到100的数,不包含100 for i in range(1,100): if i==23: print "great,you got your luncky number:&quo ...