`

《Maven实战》读书笔记(二) Maven使用入门

 
阅读更多
第三章:Maven使用入门

1.Maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建、声明项目依赖、等等。

2.

<project>
   <modelVersion>4.0</modelVersion>
   <groupId>com.fancy.mvnbook</groupId>
   <artifactId>hello-world</artifactId>
   <version>1.0-SNAPSHOT</version>
   <name>Maven Hello World Project</name>
</project>


根元素的第一个子元素modelVersion定义了当前POM模型的版本,对于maven2及maven3来说,它只能是4.0.0.

这段代码中最重要的是包含groupId,artifactId和version的三行。这三行元素定义了一个项目基本的坐标,在maven的世界,任何jar,war或者pom都是基于这些基本的坐标进行区分的。

groupId定义了项目属于哪个组,这个组往往和项目所在的组织或者公司存在关联。

artifactId定义了当前maven项目在组中唯一的ID。

3.没有任何实际的java代码,我们就能够定义一个maven项目的POM,这体现了maven的一大优点,它能让项目对象模型最大程度与实际代码相独立,我们可以称之为解耦,或者正交性。

4.下面代码中有一个值为test的元素scope,scope为依赖范围,若依赖范围为test则表示该依赖只对测试有效。如果不声明依赖范围,那么默认为值就是compile,表示对主代码和测试代码都有效。

<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.7</version>
   <scope>test</scope>
</dependency>


5.maven最主要的命令mvn clean compile:是清理target的内容并编译,mvn clean test:是执行测试,mvn clean package:是打包,mvn clean install:是将项目输出的jar安装到maven的本地仓库中。

6.为了生成可执行的jar文件,需要借助maven-shade-plugin,配置该插件如下:
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-shade-plugin</artifactId>
   <version>1.2.1</version>
   <executions>
       <phase>package</phase>
       <goals>
             <goal>shade</goal>
       </goals>
       <configuration>
             <transformers>
                  <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransFormer">
                           <mainClass>com.juvenxu.mvnbook.helloworld.HelloWorld</mainClass>
                  </transformer>
             </transformers>
       </configuration>
   </executions>
</plugin>


6.使用Archetype生成项目骨架:如果是maven3,简单地运行mvn archetype:generate。如果是maven2,最好运行命令mvn org.apache.maven.plugin.plugins:maven-archetype-plugin:2.0-alpha-5:generate。
分享到:
评论

相关推荐

    Maven入门实战笔记02-基础(2)

    【标题】"Maven入门实战笔记02-基础(2)" 涉及的主要知识点是Maven的基础使用,包括项目的创建、配置文件的理解以及依赖管理等。Maven是一款强大的Java项目管理和集成工具,它帮助开发者统一构建过程,管理项目的依赖...

    读书笔记:Maven入门与实战.zip

    读书笔记:Maven入门与实战

    maven_实战_学习笔记

    maven_实战_学习笔记 Maven安装 Maven 使用入门 主代码 位置:src/main/java 命令:mvn clean compile 解释:clean告诉maven清理target目录 compile告诉maven 编译项目主代码 测试代码 位置:src/test/java 命令...

    maven从入门到实战

    然后针对公司私有maven 库的情况下,如何安装自有资源及在maven 应用中使用私有maven 库中的资源进行说明。接下来针对maven 与配置管理工具subversion 进行整合进行了详细介绍。最后针对一个具体项目应该按什么顺序...

    读书笔记:Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战.zip

    读书笔记:Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战

    JUnit入门笔记~

    这篇入门笔记将带你深入了解JUnit的基本概念、使用方法以及其在实际开发中的应用。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,它简化了对代码进行单元测试的过程。通过JUnit,开发者可以快速地...

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip 章节笔记 第1章-课程介绍及项目框架搭建 知识点 使用spring boot 搭建项目基础框架 使用Thymeleaf做页面展示,封装Result统一结果 集成 mybatis + ...

    springboot学习笔记(史上最全)

    2. **SpringBoot实战**:阅读相关的书籍,如《Spring Boot实战》等,获取实践案例和深入理解。 3. **社区与论坛**:Stack Overflow、GitHub、CSDN等平台有大量的SpringBoot问题解答和经验分享。 4. **开源项目**:...

    java-concurrent-programming:《实战Java高并发程序设计》笔记和二进制整理

    《实战Java高并发程序设计》笔记和源码笔记《实战Java高并发程序设计》中有很多代码范例,适合初学者通过实践入门并发编程,这本书有个问题就是前面的代码都用JDK7,第六章开始又用JDK8了笔者精心制作相关笔记并整理...

    SpringBoot与Shiro整合-权限管理实战-课堂笔记.docx

    【SpringBoot与Shiro整合-权限管理实战】的课程主要关注如何将Spring Boot与Apache Shiro框架结合起来,实现高效的安全管理。Spring Boot是Spring框架的一个简化版本,旨在提高开发效率,减少配置工作,同时提供了很...

    2.2 SpringBoot与Shiro整合-权限管理实战-课堂笔记.docx

    【SpringBoot与Shiro整合-权限管理实战】 在本文中,我们将探讨如何将Spring Boot与Apache Shiro框架整合,以实现高效且灵活的权限管理系统。首先,我们需要了解这两个框架的基本概念。 **Spring Boot框架简介** ...

    Java Web框架技术笔记

    《Java Web框架技术笔记》是一份深入探讨Java Web开发的资料,特别关注Spring框架及其与Vue.js的结合使用。这份笔记旨在帮助开发者理解和掌握基于Java的Web开发,包括网页、应用程序以及微信小程序的开发。 课程...

    SSM笔记和代码.rar

    2. **实战代码**:这部分可能包含了一个或多个实际的SSM项目案例,涵盖了从环境搭建、配置文件编写、Maven依赖管理、DAO层、Service层、Controller层的实现,一直到项目的部署和运行。这些代码示例可以帮助开发者...

    ibatis学习笔记(一)

    通过阅读这份笔记,读者应该能够掌握Ibatis的基本用法,并具备初步的实战能力。对于深入学习,还可以研究Ibatis的高级特性,如结果映射的复杂配置、缓存机制以及MyBatis Generator等工具的使用。

    flink(java)笔记

    本笔记将专注于使用Java API来操作Flink,以帮助开发者深入理解其核心概念和功能。 ### 1. Flink基础知识 Flink的核心理念是“流即数据”,它支持无界和有界数据流的处理,提供事件时间和处理时间的概念。Flink...

    Eclipse开发学习笔记

    《Eclipse开发学习笔记》这本书涵盖了Eclipse的基础知识、高级特性以及实战技巧,是初学者入门和进阶的良好资源。通过学习,读者不仅可以掌握Eclipse的基本操作,还能了解到如何利用Eclipse进行高效开发,以及如何...

    笔记CoderEsky

    【笔记CoderEsky】是一个与编程相关的学习资料集合,尤其关注Java这门广泛使用的编程语言。这个压缩包可能包含了各种笔记、代码示例、学习指南和其他有助于深入理解Java编程的知识资源。由于描述部分未提供具体信息...

    spring5mvc第一天【大纲笔记】.zip

    本大纲笔记将带你逐步深入理解SpringMVC的核心概念和使用方法。 一、SpringMVC 入门 1.1 引入SpringMVC 首先,我们需要在项目中引入SpringMVC的依赖,这通常通过在Maven或Gradle的配置文件中添加相应的依赖项来完成...

Global site tag (gtag.js) - Google Analytics