- 浏览: 599455 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
Maven目录结构 src –main—java src---test---java 所有maven项目都是这样的结构
什么是pom?
pom作为项目对象模型。
通过xml表示maven项目,使用pom.xml来实现。
主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。
依赖范围:
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。
test: 测试依赖范围。
provided: 对于编译和测试classpath有效
runtime: 运行时依赖范围。
system: 系统依赖范围。
常用命令:
mvn compile
编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,
可能会比较费时间。
mvn test-compile编译测试代码, compile之会后生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除目标目录中的生成结果
mvn package 依据项目生成jar文件,打包之前会进行编译,测试。
mvn install 在本地Repository中安装jar。
基本内容:
POM包括了所有的项目信息
其中groupId,artifactId,version,packaging这四项组成了项目的唯一坐标。一般情况下,前
面三项就可以组成项目的唯一坐标了。
POM关系:主要为依赖,继承,合成
Repositories: pom里面的仓库与setting.xml里的仓库功能是一样的。
主要的区别在于, pom里的仓库是个性化的。
比如一家大公司里的setting文件是公用
的,所有项目都用一个setting文件,但各个子项目却会引用不同的第三方库,所以就需要
在pom里设置自己需要的仓库地址。
repositories:要成为maven2的repository
artifact,必须具有pom文件在$BASE_REPO/groupId/artifactId/version/artifactIdversion.pom
BASE_REPO可以是本地,也可以是远程的。 repository元素就是声明那些去查找的reposit
ories
默认的central Maven repository在http://repo1.maven.org/maven2/
聚合
为了能够使用一条命令就能构建 account-email和 accountpersist两个模块,我们需要建立一个额外的名为 accountaggregator的模块,然后通过该模块构建整个项目的所有模块。 accountaggregator本身也是个 Maven项目,它的 POM如下
Xml代码
注意: packaging的类型为pom , module的值是一个以当前POM为主目录的相对路径。
继承
可声明父POM供子 POM继承
父模块POM如下:
Xml代码
子模块声明继承如下:
Xml代码
什么是pom?
pom作为项目对象模型。
通过xml表示maven项目,使用pom.xml来实现。
主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。
依赖范围:
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。
test: 测试依赖范围。
provided: 对于编译和测试classpath有效
runtime: 运行时依赖范围。
system: 系统依赖范围。
常用命令:
mvn compile
编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,
可能会比较费时间。
mvn test-compile编译测试代码, compile之会后生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除目标目录中的生成结果
mvn package 依据项目生成jar文件,打包之前会进行编译,测试。
mvn install 在本地Repository中安装jar。
基本内容:
POM包括了所有的项目信息
groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如org.myproject. mojo生成的相对路径为: /org/myproject/mojo 项目名 artifactId:项目模块名称 version:项目的版本 packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par name:用户描述项目的名称,无关紧要的东西,可选 url:应该是只是写明开发团队的网站,无关紧要,可选 classifer:分类
其中groupId,artifactId,version,packaging这四项组成了项目的唯一坐标。一般情况下,前
面三项就可以组成项目的唯一坐标了。
POM关系:主要为依赖,继承,合成
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <type>jar</type> <scope>test</scope> <optional>true</optional> </dependency>
Repositories: pom里面的仓库与setting.xml里的仓库功能是一样的。
主要的区别在于, pom里的仓库是个性化的。
比如一家大公司里的setting文件是公用
的,所有项目都用一个setting文件,但各个子项目却会引用不同的第三方库,所以就需要
在pom里设置自己需要的仓库地址。
repositories:要成为maven2的repository
artifact,必须具有pom文件在$BASE_REPO/groupId/artifactId/version/artifactIdversion.pom
BASE_REPO可以是本地,也可以是远程的。 repository元素就是声明那些去查找的reposit
ories
默认的central Maven repository在http://repo1.maven.org/maven2/
<repositories> <repository> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy> </snapshots> <id>codehausSnapshots</id> <name>Codehaus Snapshots</name> <url>http://snapshots.maven.codehaus.org/maven2</url> <layout>default</layout> </repository> </repositories>
聚合
为了能够使用一条命令就能构建 account-email和 accountpersist两个模块,我们需要建立一个额外的名为 accountaggregator的模块,然后通过该模块构建整个项目的所有模块。 accountaggregator本身也是个 Maven项目,它的 POM如下
Xml代码
1. <project> <modelVersion>4.0.0</modelVersion> <groupId>com.juvenxu.mvnbook.account</groupId> <artifactId>account-aggregator</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Account Aggregator</name> <modules> <module>account-email</module> <module>account-persist</module> </modules> </project>
注意: packaging的类型为pom , module的值是一个以当前POM为主目录的相对路径。
继承
可声明父POM供子 POM继承
父模块POM如下:
Xml代码
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.juvenxu.mvnbook.account</groupId> <artifactId> account-parent </artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Account Parent</name> </project>
子模块声明继承如下:
Xml代码
<project> <modelVersion>4.0.0</modelVersion> < parent > <groupId>com.juvenxu.mvnbook.account</groupId> <artifactId> account-parent </artifactId> <version>1.0.0-SNAPSHOT</version> < relativePath >../account-parent/pom.xml</ relativePath> </ parent > <artifactId> account-email </artifactId> <name>Account Email</name> . ... </project>
发表评论
文章已被作者锁定,不允许评论。
-
Maven构建简单的多模块项目
2014-11-15 11:29 669一般web项目会进行分模块开发。这里简单分为domain(领域 ... -
Maven scope(依赖范围)含义的说明
2014-11-10 19:26 477依赖范围控制哪些依赖 ... -
Maven学习:常用mvn命令
2014-11-10 19:18 533Maven 在线: Jar查询 http://re ... -
maven 命令创建web项目和jetty插件
2014-09-27 09:49 402直接创建简单maven项目 首先验证你是否安装maven:m ... -
Maven加载ojdbc14-10.2.0.4.0.jar文件
2014-07-09 11:25 709第一步:在网上下载ojdbc14.jar,然后改名为ojdbc ... -
Maven基础学习
2014-07-09 11:20 4801.什么是Maven Maven是一个项目管理工具,它包含了 ...
相关推荐
史上最全的Maven的Pom.xml文件详解 Maven是Java领域最流行的构建工具之一,其核心配置文件是Pom.xml。在Pom.xml文件中,我们可以定义项目的基本信息、依赖关系、构建过程、测试环境等。下面,我们将详细解析Pom.xml...
**Maven POM配置详解** POM(Project Object Model)是Apache Maven的核心概念,它是一个项目对象模型,用于描述一个Maven项目的所有相关信息。POM是通过XML格式编写的,并且通常命名为`pom.xml`,位于项目根目录下...
Maven POM配置详解 Maven 项目的核心是 pom.xml,POM(project object model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,如何声明依赖等等。下面是 pom 文件中各个标签的用法和含义: 1. `...
《Maven POM 文件详解与配置指南》 Maven 是一个强大的Java项目管理工具,它的核心在于Project Object Model,简称POM。POM文件是Maven项目的核心配置文件,用于定义项目的构建、依赖管理和插件配置等信息。本文将...
### Maven POM.xml 文件详解 #### 一、概述 POM (Project Object Model) 是 Maven 构建项目的核心配置文件,采用 XML 格式编写。它定义了项目的元数据、依赖关系、构建逻辑等信息。POM 文件允许开发者通过简单的...
maven的pom配置文件详解 Maven的pom.xml文件是Maven项目的核心配置文件,它规定了项目的依赖关系、编译环境、测试环境、打包方式等信息。在这个文件中,我们可以看到许多重要的配置项,它们决定了项目的构建、测试...
《深入解析Maven POM详解》 Maven作为Java项目构建和依赖管理工具,其核心概念之一便是POM(Project Object Model,项目对象模型)。POM不仅定义了项目的构建规则,还封装了项目的元数据,使得Maven能够智能地处理...
在Maven的世界里,`pom.xml`和`settings.xml`是两个至关重要的配置文件,它们共同决定了Maven项目的构建过程和环境配置。`pom.xml`(Project Object Model)文件是每个Maven项目的核心,它包含了项目的基本信息、...
通过对 POM 文件的理解和掌握,开发者能够更有效地管理项目的依赖关系、构建流程以及各种配置选项。Maven 提供的强大功能使得 Java 项目的构建和部署变得更加自动化和标准化。希望本文能帮助您更好地理解和应用 ...
Maven通过在`pom.xml`文件中声明依赖(dependencies)来管理这些外部库。依赖声明包括groupId、artifactId和version,例如: ```xml <groupId>com.example</groupId> <artifactId>library-name <version>1.0.0 ...
《超级POM与POM文件总体配置详解》 在Maven的世界里,POM(Project Object Model)是项目的核心,它是Maven理解并管理项目的基石。POM.xml文件是Maven项目的配置文件,包含了项目的元数据,如项目依赖、构建过程、...
Maven 项目对象模型(POM)文件详解 Maven 是一个基于项目对象模型(POM)的项目管理和构建工具。POM 文件是 Maven 的核心组件之一,它定义了项目的基本信息、依赖关系、构建过程和其他配置项。在本文中,我们将...
在Maven的POM(Project Object Model)文件中,我们可以定义项目依赖,例如`<dependencies>`标签下的条目。 Maven的继承机制则使得多个项目可以共享相同的配置,特别是共有的依赖和构建设置。当一个项目定义为父...
POM文件常见的所有的标签配置详解 POM文件是Maven项目的核心配置文件,它包含了项目的基本信息、依赖关系、构建过程、插件配置等信息。本文将对POM文件中的常见标签进行详细的解释。 1. 父项目配置: 父项目配置是...
POM文件包含项目的配置信息,用于告诉Maven如何处理项目,包括项目的依赖关系、构建配置、插件等。当执行Maven命令时,Maven会在当前目录下查找pom.xml文件,并使用其中的配置信息来执行相应的构建任务。 2. 父...
在Maven的继承体系中,子项目可以继承父项目中定义的依赖关系和构建设置,以此简化配置并确保依赖一致性。父项目坐标包括groupId、artifactId和version,这三个字段共同构成了父项目的唯一标识。当我们在子项目的pom...
深入应用详解中,仓库、POM配置、依赖管理以及多模块和继承是核心内容。Maven仓库分为本地仓库和远程仓库,通过settings.xml配置文件可以自定义本地仓库位置,远程仓库则通常由Maven中央仓库或其他第三方提供。POM...
`pom.xml`是Maven项目对象模型(Project Object Model)的简称,是Maven的核心配置文件,用于定义项目的元数据,如项目信息、依赖关系、构建过程等。 **1. 项目基本配置** - `groupId`: 定义项目的组织或公司的唯一...