出处:http://www.fkdoc.com/html/program/java/javaweb/2010/0531/4066.html
很多初次接触开源项目的同学将项目下载到本地后,打开文件夹会看到
类似的一堆文件夹,感觉像是在咬刺猬一样,不知从何下手。那么这样的项目该怎么下手呢?其实这些文件夹就是这个项目的诸多模块,和电子运维的模块化是一样的。
打开其中一个模块,会发现这样一个文件pom.xml,这个pom可不是dota里飘逸的白虎mm,它是使用maven2构建项目的标志性文件(maven1是project..xml或者maven.xml)。
那么什么是maven呢?
从百度百科上可以查到:
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.
如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有有一个重复性更少却能同样完成该工作的方法。Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页.
项目的主页地址为:http://maven.apache.org/
很久以前,我们提起构建项目,首先会想到ant,在项目里面建一个build.xml,然后写一大堆脚本,定义一堆任务。现在,另一款工具maven2越来越流行(为什么是maven2,而不是maven呢。。。嘿嘿,因为maven1实际上只是ant的一个扩展~),大有取代ant的趋势。他只需要简简单单的几行代码,甚至可以完全用工具来操作就能实现构建,很多开源项目诸如我们熟悉的struts、spring、hibernate都在新版本里使用了maven。
2010-5-16 17:34
接下来,我们来简单讲解一下maven怎么用,最后以一个实例来结束本文。
(一)
maven的安装
打开http://maven.apache.org/download.html,选择自己需要的版本,这里我选择的是最新版apache-maven-2.2.1-bin.zip,下载后解压到D:\source\build\apache-maven-2.2.1。
在环境变量中添加M2_HOME,指向上面的解压路径。
在path变量下增加%M2_HOME%\bin;
这样maven就安装完成了,在dos窗口下输入mvn –version会看到如下内容
安装完成后我们可以对maven进行配置,打开%M2_HOME%\conf\setting.xml文件,找到<localRepository>,这是maven从网络上下载文件到本地要存放的位置,默认是
C:\Documents and Settings\Administrator\.m2,这个位置在c盘,个人建议最好还是改一下,原因大家都知道,这里我是将这个位置改到了
<localRepository>D:/source/build/apache-maven-2.2.1/repository</localRepository>也就是我的maven安装目录下的repository文件夹下。
这里也可以写成<localRepository>${M2_HOME}/repository</localRepository>这样的,maven2是可以识别的,不过如果你要使用eclipse插件的话还是不要这样,因为插件里面识别不了${M2_HOME}。
接下来我们认识一下maven2仓库文件夹的层次结构,打开repository文件夹,在没有用过maven之前它是空的,使用过后会出现很多我们熟悉的字样
这些就是我们下载过的依赖包,我们以dom4j包来讲解层次结构
打开dom4j,一直到最底层目录,我们会看到这样几个文件
它为什么会是这样一个目录结构呢?原因就在pom文件中,打开dom4j-1.6.1.pom
我们看到这样的内容
对了,我们的目录结构就是和这里对应的。多查看几个包的目录结构,对比一下每个的pom文件,我们会发现这里的层次结构其实是这样的groupId/artifactId/version/,如果groupId中间有.号,也就是类似这种org.apache.struts,那么它的目录结构就应该是org/apache/struts/artifactId/version/,在version文件夹下面就是我们真正需要的文件了,这里的包命名也是有规则的,必须是artifactId-version.jar,按照这种理论我们就能得到dom4j在repository中真正的目录结构dom4j/dom4j/1.6.1/ dom4j-1.6.1.jar
另外针对我们常用的eclipse,idea等ide,maven也都有对应的插件,这里以eclipse为例说明。
Eclipse下的插件叫做m2eclipse,官方地址是http://m2eclipse.sonatype.org/,安装方法和其他插件相同。
在线安装地址http://m2eclipse.sonatype.org/sites/m2e
这里需要注意,m2eclipse针对eclipse3.2插件的地址已经失效,而我用的恰恰是3.2版,正好我硬盘上有myeclipse8.x,为了不必要的麻烦,我直接使用8.x,因为我记得好像是在7.5以后的版本中集成了一款插件maven4myeclipse来辅助maven开发。
(二)
使用maven创建java项目
在cmd下面运行
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javase –D packageName=org.jlqu1
会看到|
需要注意:如果是第一次用maven创建项目,速度可能会有点慢,因为maven是基于插件的,很多插件都是使用的时候才会从maven的插件库里去下载,从上图中也可以看到有downloading字样。
这个pom文件中的内容,大家望文生义都能理解,我只解释一下version,这个值对应到我们运行mvn package命令后在target文件夹下面得到的
javase-1.0-SNAPSHOT.jar,
Maven有很多有用的命令,其中的mvn stie很有意思,运行成功后会在javase\target\下生成site文件夹,里面是一堆网页文件,打开index.html,是不是很熟悉呢?对了,他用apache官方的模板生成了一套关于我们自己项目的网站,很好玩~
Maven具体的命令,本文不作过多讲解,有兴趣的同学可以到官方网站看看,讲解非常详细。
有些同学可能想知道我们输入的命令到底是说明意思呢?
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javase –DpackageName=org.jlqu1
我来详细解释一下:
mvn是maven的命令
archetype:create表示创建一个项目,其中archetype是maven的一个插件,create是他的一个goal(maven插件的goal相当于ant的target)
-D是java用来设置属性的方式,请注意,它不是maven设置的。
groupId是项目所在的组名,你可以想象他就是org.apache…,这个组名主要有两个作用,其一是用来标识项目,其二是作为默认的包名,加入我们在上面的命令里没有输入–DpackageName=org.jlqu1,那么我们项目里的包就会使
com.jlqu。
artifactId就是所创建的项目名称,在本例中可以看到项目名称就叫做javase。
–DpackageName是指定包名。
如果需要将项目导入eclipse中,可以使用运行mvn eclipse:eclipse命令,完成后我们可以在项目根目录下看到熟悉的.classpath和.project两个文件。
使用maven还可以进行添加依赖包、进行单元测试等操作,这些我们将会在本文最后的实例中通过可视化工具进行讲解,有兴趣深入研究的同学可以去查一下每步操作对应的命令。
(三)
创建一个web项目
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javaweb -DarchetypeArtifactId=maven-archetype-webapp
对了,我们的目录结构就是和这里对应的。多查看几个包的目录结构,对比一下每个的pom文件,我们会发现这里的层次结构其实是这样的groupId/artifactId/version/,如果groupId中间有.号,也就是类似这种org.apache.struts,那么它的目录结构就应该是org/apache/struts/artifactId/version/,在version文件夹下面就是我们真正需要的文件了,这里的包命名也是有规则的,必须是artifactId-version.jar,按照这种理论我们就能得到dom4j在repository中真正的目录结构dom4j/dom4j/1.6.1/ dom4j-1.6.1.jar
另外针对我们常用的eclipse,idea等ide,maven也都有对应的插件,这里以eclipse为例说明。
Eclipse下的插件叫做m2eclipse,官方地址是http://m2eclipse.sonatype.org/,安装方法和其他插件相同。
在线安装地址http://m2eclipse.sonatype.org/sites/m2e
这里需要注意,m2eclipse针对eclipse3.2插件的地址已经失效,而我用的恰恰是3.2版,正好我硬盘上有myeclipse8.x,为了不必要的麻烦,我直接使用8.x,因为我记得好像是在7.5以后的版本中集成了一款插件maven4myeclipse来辅助maven开发。
(二)
使用maven创建java项目
在cmd下面运行
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javase –D packageName=org.jlqu1
会看到|
需要注意:如果是第一次用maven创建项目,速度可能会有点慢,因为maven是基于插件的,很多插件都是使用的时候才会从maven的插件库里去下载,从上图中也可以看到有downloading字样。
这个pom文件中的内容,大家望文生义都能理解,我只解释一下version,这个值对应到我们运行mvn package命令后在target文件夹下面得到的
javase-1.0-SNAPSHOT.jar,
Maven有很多有用的命令,其中的mvn stie很有意思,运行成功后会在javase\target\下生成site文件夹,里面是一堆网页文件,打开index.html,是不是很熟悉呢?对了,他用apache官方的模板生成了一套关于我们自己项目的网站,很好玩~
Maven具体的命令,本文不作过多讲解,有兴趣的同学可以到官方网站看看,讲解非常详细。
有些同学可能想知道我们输入的命令到底是说明意思呢?
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javase –DpackageName=org.jlqu1
我来详细解释一下:
mvn是maven的命令
archetype:create表示创建一个项目,其中archetype是maven的一个插件,create是他的一个goal(maven插件的goal相当于ant的target)
-D是java用来设置属性的方式,请注意,它不是maven设置的。
groupId是项目所在的组名,你可以想象他就是org.apache…,这个组名主要有两个作用,其一是用来标识项目,其二是作为默认的包名,加入我们在上面的命令里没有输入–DpackageName=org.jlqu1,那么我们项目里的包就会使
com.jlqu。
artifactId就是所创建的项目名称,在本例中可以看到项目名称就叫做javase。
–DpackageName是指定包名。
如果需要将项目导入eclipse中,可以使用运行mvn eclipse:eclipse命令,完成后我们可以在项目根目录下看到熟悉的.classpath和.project两个文件。
使用maven还可以进行添加依赖包、进行单元测试等操作,这些我们将会在本文最后的实例中通过可视化工具进行讲解,有兴趣深入研究的同学可以去查一下每步操作对应的命令。
(三)
创建一个web项目
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javaweb -DarchetypeArtifactId=maven-archetype-webapp
对了,我们的目录结构就是和这里对应的。多查看几个包的目录结构,对比一下每个的pom文件,我们会发现这里的层次结构其实是这样的groupId/artifactId/version/,如果groupId中间有.号,也就是类似这种org.apache.struts,那么它的目录结构就应该是org/apache/struts/artifactId/version/,在version文件夹下面就是我们真正需要的文件了,这里的包命名也是有规则的,必须是artifactId-version.jar,按照这种理论我们就能得到dom4j在repository中真正的目录结构dom4j/dom4j/1.6.1/ dom4j-1.6.1.jar
另外针对我们常用的eclipse,idea等ide,maven也都有对应的插件,这里以eclipse为例说明。
Eclipse下的插件叫做m2eclipse,官方地址是http://m2eclipse.sonatype.org/,安装方法和其他插件相同。
在线安装地址http://m2eclipse.sonatype.org/sites/m2e
这里需要注意,m2eclipse针对eclipse3.2插件的地址已经失效,而我用的恰恰是3.2版,正好我硬盘上有myeclipse8.x,为了不必要的麻烦,我直接使用8.x,因为我记得好像是在7.5以后的版本中集成了一款插件maven4myeclipse来辅助maven开发。
(二)
使用maven创建java项目
在cmd下面运行
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javase –D packageName=org.jlqu1
会看到|
需要注意:如果是第一次用maven创建项目,速度可能会有点慢,因为maven是基于插件的,很多插件都是使用的时候才会从maven的插件库里去下载,从上图中也可以看到有downloading字样。
这个pom文件中的内容,大家望文生义都能理解,我只解释一下version,这个值对应到我们运行mvn package命令后在target文件夹下面得到的
javase-1.0-SNAPSHOT.jar,
Maven有很多有用的命令,其中的mvn stie很有意思,运行成功后会在javase\target\下生成site文件夹,里面是一堆网页文件,打开index.html,是不是很熟悉呢?对了,他用apache官方的模板生成了一套关于我们自己项目的网站,很好玩~
Maven具体的命令,本文不作过多讲解,有兴趣的同学可以到官方网站看看,讲解非常详细。
有些同学可能想知道我们输入的命令到底是说明意思呢?
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javase –DpackageName=org.jlqu1
我来详细解释一下:
mvn是maven的命令
archetype:create表示创建一个项目,其中archetype是maven的一个插件,create是他的一个goal(maven插件的goal相当于ant的target)
-D是java用来设置属性的方式,请注意,它不是maven设置的。
groupId是项目所在的组名,你可以想象他就是org.apache…,这个组名主要有两个作用,其一是用来标识项目,其二是作为默认的包名,加入我们在上面的命令里没有输入–DpackageName=org.jlqu1,那么我们项目里的包就会使
com.jlqu。
artifactId就是所创建的项目名称,在本例中可以看到项目名称就叫做javase。
–DpackageName是指定包名。
如果需要将项目导入eclipse中,可以使用运行mvn eclipse:eclipse命令,完成后我们可以在项目根目录下看到熟悉的.classpath和.project两个文件。
使用maven还可以进行添加依赖包、进行单元测试等操作,这些我们将会在本文最后的实例中通过可视化工具进行讲解,有兴趣深入研究的同学可以去查一下每步操作对应的命令。
(三)
创建一个web项目
mvn archetype:create -DgroupId=com.jlqu -DartifactId=javaweb -DarchetypeArtifactId=maven-archetype-webapp
分享到:
相关推荐
在项目的 `pom.xml` 文件中,可以配置 `maven-compiler-plugin` 来定制编译行为。例如,以下是一个基本配置示例: ```xml ... ... <groupId>org.apache.maven.plugins <artifactId>maven-compiler-...
- **插件**: Maven的扩展性主要体现在插件上,如`maven-compiler-plugin`用于编译Java代码,`maven-surefire-plugin`用于执行单元测试。 - **版本控制**: Maven遵循严格的版本号规则,例如`1.0.0-SNAPSHOT`表示开发...
exec-maven-plugin是Maven生态系统中的一个插件,它允许用户在Maven构建过程中执行外部命令或脚本。这使得Maven项目可以集成更多的自定义操作,比如运行特定的脚本、调用系统命令等。本文将详细介绍exec-maven-...
Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化构建生命周期和依赖管理,使得开发者能够更高效地构建、测试和部署Java应用程序。Maven 3.3.9是Maven的一个稳定版本,它包含了多个...
首先,你需要下载`apache-maven-3.6.0`压缩包。这个压缩包包含了Maven运行所需的所有文件,包括bin目录下的可执行脚本,lib目录中的依赖库,以及conf目录下的配置文件如settings.xml。下载完成后,解压到你选择的...
Apache Maven 是一个强大的项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,可以帮助Java开发者管理和构建他们的项目。Maven 提供了一种标准化的方式来管理项目的依赖、构建过程以及文档生成...
Apache Maven 是一个强大的项目管理工具,它主要用于...综上所述,"apache-maven-3.5.4-bin"和"apache-maven-3.3.9-bin"分别代表了Maven在不同时间点的稳定状态,用户可以根据项目需求和兼容性选择合适的版本进行使用。
例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin负责运行单元测试,maven-jar-plugin用来打包jar文件。 在软件开发过程中,Maven还可以生成项目报告,包括Javadoc、代码覆盖率报告等。同时,...
Apache Maven 是一个强大的项目管理工具,它主要用于构建、管理和聚合Java项目。这个压缩包包含了Apache Maven的三个不同版本:3.3.9、3.5.3和3.6.1,这些都是Maven的重要里程碑版本。 1. **Maven 3.3.9**: Maven...
apache-maven-4.0.0-beta-3-src是Maven 4.0.0 Beta 3版本的源代码发布。Maven是一个广泛使用的项目管理和构建工具,用于自动化构建、依赖管理和项目报告生成。 Maven的目标是提供一个声明式的项目对象模型(Project...
在"apache-maven-3.6.3"这个压缩包中,你会找到以下关键组件: 1. **bin**目录:包含了Maven的可执行脚本,如`mvn`命令,用于执行构建任务。 2. **boot**目录:包含了用于启动Maven的SmallRye ClassLoader。 3. **...
在IT行业中,SSH(Spring、Struts和Hibernate)是一个经典的Java Web开发框架组合,而Maven则是一个项目管理和综合工具,用于自动化构建、项目信息管理以及依赖管理。本实例主要探讨如何利用Maven来构建一个整合了...
总结起来,"apache-maven-3.5.4-bin"压缩包包含的是一个完整的Maven 3.5.4发行版,它提供了一整套工具和框架,帮助Java开发者实现项目构建、依赖管理和版本控制。通过理解和掌握Maven,开发者可以提高工作效率,降低...
2. 使用archetype:generate命令:通过执行`mvn archetype:generate`命令,开发者可以基于maven-archetype-3.1.2创建新项目,输入相应的ID和属性值,即可自动生成符合规范的新项目结构。 三、依赖管理和插件配置 1....
Apache Maven (apache-maven-3.8.4-bin.zip)是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中央信息中管理项目的构建、报告和文档。
综上所述,"apache-maven-3.3.9版本.zip"提供了Maven的一个完整版本,包含所有运行和构建Java项目所需的基本元素。通过学习和掌握Maven,开发者可以提高项目构建的效率,减少手动配置的工作量,同时也可以更好地利用...
1. "apache-maven-3.5.4-bin.zip":这个文件包含了Maven 3.5.4的二进制发行版,用户解压后可以直接在操作系统上运行,进行Java项目的构建。 2. "apache-maven-3.5.4-src.zip":这个文件包含了Maven 3.5.4的源代码,...
Maven是Apache软件基金会开发的开源项目,它的核心目标是简化Java项目的构建过程。通过使用约定优于配置的原则,Maven可以自动处理大部分构建任务,如编译、测试、打包、部署等,极大地提高了开发效率。 2. **POM...
在这个“apache-maven-3.6.2-bin”安装包中,包含了运行Maven所需的所有核心组件、插件和文档。 1. **Maven的基本概念**: Maven是基于项目对象模型(Project Object Model, POM)的概念,通过XML文件定义项目的...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。...如果你对 Java 构建工具或者项目管理有兴趣,那么深入研究 "apache-maven-4.0.0-alpha-7-src.zip" 将会是一次宝贵的学习体验。