首次接触Maven:项目结构以及pom文件理解

一.  Maven项目结构 

一个Maven项目结构符合以下展示:

       |
     |_______src文件夹
                |
            |_______main文件夹
                      |
                      |_________java文件夹
                              |
                      |____实体类
                      |
                      |____Util
                      |
                      |____Dao
                      |
                      |_____Service
                  |
                  |
                  |_________resources文件夹
                             |____java工具类运行时要读取配置文件
            |
            |_______test文件夹
                     |
                 |________java文件夹
                             |_______测试类
                 |
                 |________resources文件夹
                             |_______测试类要读取配置问价
     |
     |_______pom.xml

在创建完一个Maven工程后,目前是这样的结构:

java文件夹下用于存放java源程序以及源码,test包下则是Maven生成的测试文件夹

接下来创建resources文件夹用于存放资源文件或者配置文件:

二.  pom文件理解

从maven的三个作用来讲:

  1.用来向Maven工具进行自我介绍
    <modelVersion>4.0.0</modelVersion>

   <groupId>com.bjpowernode</groupId>
   <artifactId>ProjectA</artifactId>
   <version>1.0</version>

    <name>ProjectA</name>

2.用来向maven索要jar包:

在<dependencies></dependencies>中书写要依赖的jar包

<dependencies>

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

</dependencies>

Maven Repository: Search/Browse/Explore (mvnrepository.com) 通过这个网站可以查询到项目jar包完整的信息,直接复制粘贴到pom.xml文件中就行。

3.用来向maven索要项目构建周期服务:

<build></build>中,记录了项目周期构建服务

(1)什么是项目周期构建服务?简单来说,maven为maven项目提供了一整套行之有效的构建插件,依赖maven和这些插件,开发人员在maven工程的设计中,实际的工作可以交由插件完成。

打开右边栏的maven小页,点击lifecycle,以下展示的就是maven项目周期构建服务

clean放后再讲。

vadlidate, 用于检测当前项目的pom.xml文件的配置标签是否书写正确。并在控制台输出检查结果

compile,将src/main 下的被标记为sourceRoot的文件夹下的所有java文件编译为class文件,并被maven自动存入工程中的target文件夹下。   

在编译前,没有target文件夹

编译后,出现了target文件夹,存放着编译好的class文件

test:这个命令自动将src/test/java文件夹中所有的java文件编译为class文件并保存到target中。然后自动运行每一个测试方法。tip:自动调用了compile,运行了test中的测试方法

package:将target中classes文件所有的类文件打成jar包或则war包。

并存放到target文件中,就在targets文件夹中(先编译测试通过测试后在打jar包,package)

至于是打包成jar包还是war包则是依据pom.xml文件中的<packaging></packaging>标签指定

install:将target中jar包添加到maven工具的本地仓库中。Maven工具会自动在当前计算机生成一个本地仓库(这里就是放在你已经指定好的本地仓库)。用于对当前计算机中的Maven工程提供jar包支持.(非常重要,是将你自己创建的jar包放于maven的仓库)

deploy:将target中jar或则war包推送到远程的Maven仓库

clean:将target文件所有的内容都清除(包括targets文件夹)

(2)pom文件中的build标签中的<resources>标签:

<resources>。这个标签的应用有:修改工程项目文件位置;

修改工程项目文件位置:一般来说,当我们创建了maven项目后,在main文件夹下会有一个resources文件夹用于存放工程资源文件,在maven中也会自动去寻找相应的位置来获取工程资源配置文件。然而通过directory标签,我们可以任意指定资源文件夹位置

<resources>

<!--可以写多个resource标签,如图所示-->

     <resource>

          <directory>要指定的文件夹目录</directory>

          <includes>

               <include>**/*.xml</include> <!--存在与指定文件夹下的任意位置,任意名称的xml文件-->

                   <!--可以写多个include标签-->

          </includes>

   </resource>

</resources>

(3)build标签下的plungin标签:

Maven是通过pom.xml来执行任务的,其中的build标签描述了如何来编译及打包项目,而具体的编译和打包工作是通过build中配置的 plugin 来完成。当然plugin配置不是必须的,默认情况下,Maven 会绑定以下几个插件来完成基本操作。

(4)jar包依赖原则:(同一个jar包不同版本)

依赖路径最短优先原则:谁的路径最近就用哪个jar包(比如,本地导入jar包和导入的其他香奴中存在的jar包,本地导入的路径近)

相同路径新导入优先: 相同路径优先使用新导入的jar包

  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值