基本信息:
<modelVersion>4.0.0</modelVersion> :Maven3固定不变
<groupId>com.netqin.framework</groupId> :定义项目隶属于哪个组,是一个实际的项目
<artifactId>frame-core</artifactId> :项目模块名称
<packaging>jar</packaging> :打包方式,默认jar,可以配置war,pom(聚合项目)
<version>0.0.1-SNAPSHOT</version>:项目版本
<name>netqin foamework core</name> :项目一个比较易读的名称
<url>http://maven.apache.org/frame-core</url> :项目访问地址
聚合项目:
<modelVersion>4.0.0</modelVersion>
<groupId>com.netqin.framework</groupId>
<artifactId>frame-framework</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>netqin foamework</name>
<url>http://maven.apache.org</url>
<modules>
<module>frame-core</module>
<module>frame-service</module>
</modules>
子模块:
<modelVersion>4.0.0</modelVersion> :无论聚合项目还是子项目,都必须包含该配置
<parent>
<artifactId>frame-framework</artifactId>
<groupId>com.netqin.framework</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>frame-core</artifactId>:其余属性默认与父模块相同
<packaging>jar</packaging>
<name>netqin foamework core</name>
<build>
<finalName>frame-core</finalName>:生成的包的名称
</build>
聚合和子模块都可以配置如下内容:
1.属性
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
2.依赖
<dependencies>
<dependency>
<groupId>spring</groupId>
<artifactId>spring-core</artifactId>
<version>1.0.2</version>:以上三项为必填项,version在子模块继承时可以不用声明
<type>jar</type>:依赖类型,默认为jar,对应于项目的packaging,一般不用声明
<scope>compile</scope>:依赖范围,默认compile,编译、测试、运行都有效,比如spring-core
<optional>true</optional>:可选依赖,既只对当前项目有效,不会传递给子模块
<exclusions>:排除依赖,既排除掉当前依赖下对应依赖包,既项目编译时不会导入该依赖包,可以在下面声明一个高级版本进行替换
<exclusion>
<groupId>com.test.demo</groupId>
<artifactId>demo-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.test.demo</groupId>
<artifactId>demo-core</artifactId>
<version>1.0.2</version>:换个高级版本
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<type>jar</type>
<scope>test</scope>:只对测试范围有效,比如Junit。
另外还可配置provided:编译和测试有效,运行无效,比如servlet-api。
runtime:测试和运行时有效。
import:导入其它pom中的<dependencyManagement>,该元素只在<dependencyManagement>中可以使用,如下内容介绍。
</dependency>
</dependencies>
dependencies:会被子模块继承,如果不希望子模块继承,可以使用如下配置:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${juint.version}</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springframework.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.test</groupId>
<artifactId>test</artifactId>
<version>1.0.0version>
<type>pom</type>:只能是pom
<scope>import</scope>:将该坐标对应的聚合项目中的<dependencyManagement>合并到当前的<dependencyManagement>中来
</dependency>
</dependencies>
</dependencyManagement>
<dependencyManagement>:被该元素包裹起来的依赖不会被子模块继承,
如果子模块中要使用,需要在dependencies中声明,但这时可以之生命groupId和artifactId,比如:
3.插件
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>default-clean</id>
<phase>clean</phase>:绑定clean生命周期
<goals>
<goal>clean</goal>:绑定clean生命周期的clean目标
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
上述配置,子模块也会继承,类似<dependencyManagement>,如果不希望子模块继承,可以如下配置:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
子模块只要如下配置即可:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
</plugins>
</build>
插件需要绑定到某个生命周期才可以使用
依赖项目命令:
1.查看当前项目的已解析依赖,类似于eclipse的pom查看器中的Dependency Hierarchy的右侧视图
mvn dependency:list
2.查看当前项目的已解析依赖,类似于eclipse的pom查看器中的Dependency Hierarchy的左侧视图
mvn dependency:tree
3.查看项目使用了但是依赖没有声明,或者是声明了没有使用
mvn dependency:analyze
比如,没有使用到spring-core,但是项目中声明了
[WARNING] Unused declared dependencies found:
[WARNING] org.springframework:spring-core:jar:3.0.6.RELEASE:compile
分享到:
相关推荐
总的来说,"Maven入门实战笔记02-基础(2)"很可能是对Maven基础操作的深入讲解,涵盖了项目创建、POM配置、依赖管理、生命周期和构建过程等内容,对于想要学习和掌握Maven的Java开发者来说,是一份非常实用的学习资料...
从给定的文件信息来看,标题与描述都指向了“Maven3实战笔记(整合)”,这表明文档主要聚焦于Maven3的实践应用与整合经验分享。Maven是Apache软件基金会维护的一个开源项目,是一个项目管理和综合工具,主要用于Java...
**Maven实战教程** 1. **创建新项目** - 使用`mvn archetype:generate`命令创建一个新的Maven项目。 - 选择合适的archetype模板,根据提示输入项目信息。 2. **项目构建与调试** - 使用`mvn install`命令将项目...
《Maven3实战笔记(全)》是一本全面深入介绍Maven3的实践指南,由一位具有独特风格的作者撰写,以其风趣幽默的方式解析了Maven3的各种核心概念和使用技巧。这本书涵盖了从Maven的基础安装与配置,到复杂的仓库依赖...
【标题】:“Maven3 学习笔记” 在软件开发领域,Maven 是一个非常重要的构建工具,尤其在Java世界中占据着主导地位。Maven3 是 Maven 的第三个主要版本,它增强了性能,提升了用户体验,并引入了更多现代化的构建...
标题中提及的“Maven3实战笔记”指向了Maven这款流行的Java项目管理和自动化构建工具的第三个主要版本。Maven自从引入以来,就极大地简化了Java项目的构建过程,提高了项目构建的标准化程度。它使用项目对象模型...
在Maven3的实战学习中,第二部分着重于项目需求分析与模块划分,这是构建大型、复杂项目时的基础工作,能够帮助开发者更好地理解项目架构,合理分配资源,提高开发效率。 #### 项目需求分析 项目需求分析是软件...
【尚硅谷Maven课程笔记代码资源】是一份全面学习Maven的资料集合,它涵盖了从基础到高级的各种知识点,旨在帮助开发者深入理解并熟练运用Maven进行自动化构建。该资源包含课件、源码和相关的笔记,使得学习过程更加...
**Maven实战笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过一个统一的项目对象模型(Project Object Model,POM),使得开发者可以轻松地定义...
9. **pom.xml**:Maven的配置文件,定义了项目依赖、插件和构建设置。通过Maven,开发者可以轻松管理和构建项目,确保所有依赖库都能正确引入。 10. **sql**:可能包含了数据库的初始化脚本,用于创建秒杀系统的...
《Maven实战》是一本实践导向的书籍,涵盖了Maven在实际项目中的应用,包括设置环境变量、配置构建服务器、集成持续集成工具如Jenkins,以及使用Maven进行部署。此外,它还介绍了一些高级话题,如使用Maven进行敏捷...
**正文** Maven3是一个强大的Java项目管理工具,由Apache软件基金会开发,它极大地简化了...通过"apache-maven-3.0.4"的使用和"Maven3实战笔记"的学习,开发者可以全面掌握Maven的精髓,更好地服务于软件开发工作。
本项目提供了详细的流程说明和学习笔记,帮助开发者更好地掌握相关知识。 首先,`pom.xml`文件是Maven项目的配置文件,它定义了项目依赖,包括SSM框架的各个版本和其他必要的库。通过管理依赖关系,Maven能够自动...
这个项目不仅包含了详细的操作流程,还有学习笔记,帮助开发者深入理解相关技术。 首先,SSM框架是Java Web开发中的经典组合,它将Spring的依赖注入、SpringMVC的MVC模式和MyBatis的持久层操作结合在一起,提高了...
**SpringBoot学习笔记** SpringBoot是由Pivotal团队开发的一款基于Java的轻量级框架,旨在简化Spring应用的初始搭建以及开发过程。它通过自动配置、起步依赖和运行时嵌入式服务器,使得开发者能够快速地创建独立的...
**Spring MVC 学习笔记 一 创建项目** 在IT领域,Spring MVC是Java Web开发中的一个强大框架,它简化了构建交互式Web应用程序的过程。本笔记将深入探讨如何创建一个基本的Spring MVC项目,让我们开始吧。 首先,...
【SpringBoot与Shiro整合-权限管理实战】的课程主要关注如何将Spring Boot与Apache Shiro框架结合起来,实现高效的安全管理。Spring Boot是Spring框架的一个简化版本,旨在提高开发效率,减少配置工作,同时提供了很...