Maven安装成功之后我们动手来构建一个Maven应用,并通过这个应用更进一步的了解Maven的细节。
1.打开eclipse,在菜单栏中点击File->New->Other,然后在界面中找到"Maven project",点击下一步进入下一个页面:
2.第二个界面可以选择是否创建一个示例项目,这里直接下一步:
3.选择"原型",也就是选择项目的类型,我们选择"mavent-archetype-quickstart",下一步:
4.进入到Maven项目创建的最后一步,也是最重要的一步,如图所示:
想必此时很多不了解Maven的朋友会“无从下手”,因为我们不了解上面这些配置的含义,其实并不复杂。
GroupID:是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构(下面我们会讲解Maven目录结构)。
ArtifactID:就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
GroupId中填写:com.hello.maven;
ArtifactID中填写:helloMaven;
在最后的package会自动根据前面填写的内容变化:com.hello.maven.helloMaven;
5.点击"Finsh"后eclipse会自动创建项目,以下就是项目的目录结构:
在这里要重点说下Maven的目录结构,在Maven官网上推荐了一套“标准”的目录结构:
原文地址:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
原文大致意思:Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其他的Maven工程也能清晰了解。Maven推荐大家尽可能的遵守这样的目录结构,这样可以快速掌握其他项目结构。
以下是标准的目录结构,并且也是创建项目所产生的目录结构,如下:
在工程根目录中是描述文件pom.xml即Maven构建文件,另外还包括提供给最终用户的文件,如,README.txt, LICENSE.txt等等。
工程根目录还包括两个子目录:src,target。顶级目录下可能出现的其他目录仅仅是CVS或.svn和其他多模块工程的工程目录,最好不要再有其他目录。
Target目录是所有工程编译构建的输出目录。
Src目录包含所有工程的源码文件,配置文件,资源文件等等。它下面的子目录一般包含main(主要的工程源文件),test(测试文件),site(项目站点文件)。
接下来我们就开始仔细分析下Maven工程与普通的Java工程有什么不同。
打开根目录中的pom.xml文件,内容如下:
<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">
<!-- 指明POM使用的对象模型的版本,此值很少改动 -->
<modelVersion>4.0.0</modelVersion>
<!-- groupId -->
<groupId>com.hello.maven</groupId>
<!-- artifactId -->
<artifactId>helloMaven</artifactId>
<!-- 项目产品版本 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 打包方式 -->
<packaging>jar</packaging>
<!-- 项目显示名称 -->
<name>helloMaven</name>
<!-- 项目站点 -->
<url>http://286.iteye.com/</url>
<!-- 属性设置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 依赖关系 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
通过前面Ant的学习,pom.xml文件的内容并不难理解,只是有些语法语义上的差别。
接下来我们在pom.xml配置文件中加入<build>来进行构建项目,代码如下:
<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">
<!-- 指明POM使用的对象模型的版本,此值很少改动 -->
<modelVersion>4.0.0</modelVersion>
<!-- groupId -->
<groupId>com.hello.maven</groupId>
<!-- artifactId -->
<artifactId>helloMaven</artifactId>
<!-- 项目产品版本 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 打包方式 -->
<packaging>jar</packaging>
<!-- 项目显示名称 -->
<name>helloMaven</name>
<!-- 项目站点 -->
<url>http://286.iteye.com/</url>
<!-- 属性设置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 依赖关系 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 这里采用默认编译器 -->
<build>
<defaultGoal>compile</defaultGoal>
</build>
</project>
进入项目根目录,即pom.xml所在目录,在控制台状态下运行Maven"clean"命令:
mvn clean
运行结果:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ helloMaven ---
[INFO] Deleting D:\maven_project\helloMaven\target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.686s
[INFO] Finished at: Mon Jul 29 11:59:12 CST 2013
[INFO] Final Memory: 3M/122M
[INFO] ------------------------------------------------------------------------
我们继续尝试Maven的"test"命令,结果如下:
mvn test
运行结果:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ helloMaven ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\maven_project\helloMaven\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ helloMaven ---
[INFO] Compiling 1 source file to D:\maven_project\helloMaven\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ helloMaven ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\maven_project\helloMaven\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ helloMaven ---
[INFO] Compiling 1 source file to D:\maven_project\helloMaven\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ helloMaven ---
[INFO] Surefire report directory: D:\maven_project\helloMaven\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.hello.maven.helloMaven.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.712s
[INFO] Finished at: Mon Jul 29 12:35:06 CST 2013
[INFO] Final Memory: 10M/122M
[INFO] ------------------------------------------------------------------------
Maven的build命令:
mvn build
运行结果:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ helloMaven ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\maven_project\helloMaven\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ helloMaven ---
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.679s
[INFO] Finished at: Mon Jul 29 13:29:27 CST 2013
[INFO] Final Memory: 3M/122M
[INFO] ------------------------------------------------------------------------
Maven的install命令:
mvn install
运行结果:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloMaven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ helloMaven ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\maven_project\helloMaven\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ helloMaven ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ helloMaven ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\maven_project\helloMaven\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ helloMaven ---
[INFO] Compiling 1 source file to D:\maven_project\helloMaven\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ helloMaven ---
[INFO] Surefire report directory: D:\maven_project\helloMaven\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.hello.maven.helloMaven.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.024 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ helloMaven ---
[INFO] Building jar: D:\maven_project\helloMaven\target\helloMaven-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ helloMaven ---
[INFO] Installing D:\maven_project\helloMaven\target\helloMaven-0.0.1-SNAPSHOT.jar to C:\Users\maoshou\.m2\repository\com\hello\maven\helloMaven\0.0.1-SNAPSHOT\helloMaven-0.0.1-SNAPSHOT.jar
[INFO] Installing D:\maven_project\helloMaven\pom.xml to C:\Users\maoshou\.m2\repository\com\hello\maven\helloMaven\0.0.1-SNAPSHOT\helloMaven-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.289s
[INFO] Finished at: Mon Jul 29 13:32:56 CST 2013
[INFO] Final Memory: 8M/122M
[INFO] ------------------------------------------------------------------------
运行完mvn install命令之后,target目录下已经多了很多文件及jar包,说明我们的maven项目已经构建完成,下一篇我们会研究maven的相关配置信息及含义。
- 大小: 22.6 KB
- 大小: 17.5 KB
- 大小: 28.8 KB
- 大小: 19.6 KB
- 大小: 11.4 KB
- 大小: 16.1 KB
分享到:
相关推荐
创建Maven项目的第一步是选择File > New > Maven Project。在新建向导中,我们可以选择“Create a simple project”来快速创建一个基本的Maven结构,或者选择“Create a project from archetype”来根据特定的Maven ...
Maven3是Maven系列的第三个主要版本,它在Maven2的基础上进行了改进,提供了更高效、更稳定、更易用的功能,帮助开发者更加便捷地管理项目的构建、依赖和生命周期。 ### Maven的核心概念 1. **项目对象模型...
Maven是一个流行的项目管理和综合工具,它通过提供一套标准化的构建过程,简化了Java项目的构建、依赖管理和部署。在Spring开发中,Maven扮演着至关重要的角色,它帮助开发者管理各种库依赖,使得Spring应用程序的...
【标题】"maven练习java项目"涉及到的是一个基于Maven构建的Java应用程序,它集成了MyBatis框架,旨在帮助新手学习和实践。Maven是Apache开发的一个项目管理和综合工具,它通过XML文件(pom.xml)管理项目的构建、...
依赖管理方面,Maven采用坐标系统来唯一标识一个项目依赖,开发者只需要指定依赖的groupId、artifactId和version,Maven便能自动解析并下载依赖。多模块项目是指一个项目被分为多个子模块,可以分别进行构建,而继承...
1. **添加代理仓库**: 对于不在Maven中央仓库的第三方插件,可以在Nexus中创建一个新的代理仓库,指向提供该插件的远程仓库。 2. **手动上传**: 如果第三方插件无法通过代理获取,可以手动将jar包上传至Nexus的宿主...
Maven是一款强大的项目管理和构建工具,作为Apache基金会下的一个开源项目,它完全采用Java语言编写,主要用于管理Java项目。Maven通过标准化项目构建过程和依赖管理,极大地简化了Java项目的构建流程。 ##### ...
1. **Maven构建系统**:Maven通过一个项目对象模型(Project Object Model,POM)来管理项目配置。POM包含项目的属性、构建指令、依赖关系等信息。在Tomcat7.0.78的源码中,Maven会解析POM.xml文件,下载所有必要的...
Maven构建生命周期定义了一系列的构建阶段和目标,如编译、测试、打包、安装和部署等,开发者可以通过执行不同的生命周期阶段来完成项目的构建。此外,Maven还提供了丰富的插件支持,如编译插件、测试插件、打包插件...
创建SpringMVC项目的第一步是安装和配置Eclipse与Maven。确保你已经在Eclipse中安装了M2E插件,该插件使Eclipse能够与Maven集成。如果尚未安装,可以通过Eclipse Marketplace进行搜索并安装。 接下来,我们开始创建...
"第一个eclipse maven web项目实例" 这个标题明确指出这是一个基于Eclipse集成开发环境的Maven Web项目示例。它表明我们正在处理一个使用Maven构建工具,且能直接在Eclipse中运行的Web应用程序项目。 描述中提到,...
第一种方法使用Jenkins的SSH插件连接远程主机,实现代码发布和回滚。第二种方法使用Jenkins的SVN插件连接SVN版本控制系统,实现代码回滚。 Jenkins持续集成意义 Jenkins的持续集成意义在于它可以自动化构建、测试...
它会根据`pom.xml`中的依赖声明,自动下载所有依赖及其子依赖,并且遵循第一出现优先原则处理版本冲突。 5. **聚合项目**:Maven支持多模块项目,一个父`pom.xml`可以管理多个子模块,方便大型项目的构建和管理。 ...
创建多模块项目的第一步是建立父pom.xml文件。在`demo-parent`目录下,你会看到一个pom.xml,这里定义了项目的基本信息,比如groupId、artifactId(在这个例子中可能是`com.example.demo`和`demo-parent`),以及...
创建第一个Maven项目,你可以使用`mvn archetype:create`命令。例如,创建一个简单的Java应用,输入: ``` mvn archetype:generate -DgroupId=...
然后,通过创建和配置POM文件,可以开始构建第一个Maven项目。在Eclipse等IDE中,可以安装Maven插件,以便更方便地在开发环境中集成和使用Maven。 ### 多项目参与 Maven 2还支持多模块项目,允许开发者在一个父POM...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它通过定义项目的构建过程、依赖管理和项目信息来简化和标准化整个开发流程。Maven 3.6.3是Maven的一个稳定版本,包含了多项改进和修复...
使用Maven构建JavaWeb项目的第一步是创建一个新的Maven项目。这可以通过执行`mvn archetype:create`命令,选择一个适合的archetype,例如`maven-archetype-webapp`,来生成基础的项目结构。 三、Maven的POM.xml POM...
Maven 是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理和构建 Java 项目的工具。它由 Apache 软件基金会开发,旨在简化项目构建过程,通过自动化构建流程,使开发者可以专注于编写代码而不是...