springboot与JAVA结合的项目的理解

写在前面:

2022.5.30大二下学期。

这次的代码是由2021至2022学年在莆院任职的林晨潇老师编写,文件名为trial2_3-master

内容为Springboot与JAVA、Mysql结合的项目实现权限访问的功能

maven项目功能的理解

 

这个为maven项目的pom.xml文件配置.其作用是:'可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件','1、在文件中添加相应的配置,maven就会自动的下载相应的jar包;2、下载依赖,只要配置的jar包所依赖的其他jar包都会被它自动下载下来; 3、可以直接通过它打包war或者jar项目'.

pom.xml的​​​​​​​完整代码

 

这是maven项目里面的配置。

代码分析

 代码的第一行是xml头,指定了该xml文档的版本和编码方式。

 

紧接着是project元素,project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但使用这些属性能够让第三方工具(如:IDE中的xml编辑器)帮助我们快速编辑POM。

 

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

 

groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,如果你的公司是mycom,有一个项目为myapp,那么groupId应该是com.mycom.myapp。

artifactId定义了当前maven项目在组中唯一的ID,如在前面的groupId为com.googlecode.myapp的例子中,你可能会为不同的子项目(模块)分配artifactId,如:myapp-util,myapp-domain,myapp-web等。

顾名思义,version指定了项目当前的版本--1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0,1.1-SNAPSHOT,1.1,2.0等。

最后一个name元素声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个pom声明name,以方便信息交流。

line5 <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括groupID,artifactID和version等。-->

line6-8<!--父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。
        默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,
        其次在文件系统的这个位置(relativePath位置),然后在本地仓库,
        最后在远程仓库寻找父项目的pom。-->
line9从存储库中查找父项

line10略。

parent的两个场景:

现在有这样一个场景,有两个web项目A、B,一个java项目C,它们都需要用到同一个jar包:common.jar。如果分别在三个项目的pom文件中定义各自对common.jar的依赖,那么当common.jar的版本发生变化时,三个项目的pom文件都要改,项目越多要改的地方就越多,很麻烦。这时候就需要用到parent标签, 我们创建一个parent项目,打包类型为pom(parent项目只能是pom,不包含任何代码),parent项目中不存放任何代码,只是管理多个项目之间公共的依赖。在parent项目的pom文件中定义对common.jar的依赖,ABC三个子项目中只需要定义,parent标签中写上parent项目的pom坐标就可以引用到common.jar了。

上面的问题解决了,我们在切换一个场景,有一个springmvc.jar,只有AB两个web项目需要,C项目是java项目不需要,那么又要怎么去依赖。如果AB中分别定义对springmvc.jar的依赖,当springmvc.jar版本变化时修改起来又会很麻烦。解决办法是在parent项目的pom文件中使用<dependencyManagement></dependencyManagement>将springmvc.jar管理起来,如果有哪个子项目要用,那么子项目在自己的pom文件中使用

 build的分类:

(1)全局配置(project build)

                 针对整个项目的所有情况都有效

       (2)配置(profile build)

                 针对不同的profile配置

基本元素(拓展)

  1. <build>

  2. <defaultGoal>install</defaultGoal>

  3. <directory>${basedir}/target</directory>

  4. <finalName>${artifactId}-${version}</finalName>

  5. <filters>

  6. <filter>filters/filter1.properties</filter>

  7. </filters>

  8. ...

  9. </build>

 1)defaultGoal

                    执行build任务时,如果没有指定目标,将使用的默认值。

                    如上配置:在命令行中执行mvn,则相当于执行mvn install

              2)directory
                     build目标文件的存放目录,默认在${basedir}/target目录

              3)finalName

                     build目标文件的名称,默认情况为${artifactId}-${version}

              4)filter

                     定义*.properties文件,包含一个properties列表,该列表会应用到支持filter的resources中。

                     也就是说,定义在filter的文件中的name=value键值对,会在build时代替${name}值应用到resources中。

                     maven的默认filter文件夹为${basedir}/src/main/filters

 (2)Resources配置

 用于包含或者排除某些资源文件

  1)resources

                    一个resources元素的列表。每一个都描述与项目关联的文件是什么和在哪里

              2)targetPath

                    指定build后的resource存放的文件夹,默认是basedir。

                    通常被打包在jar中的resources的目标路径是META-INF

             3)filtering

                    true/false,表示为这个resource,filter是否激活
             4)directory

                    定义resource文件所在的文件夹,默认为${basedir}/src/main/resources

             5)includes

                    指定哪些文件将被匹配,以*作为通配符

             6)excludes

                   指定哪些文件将被忽略

             7)testResources

                   定义和resource类似,只不过在test时使用

(3)plugins配置

                  用于指定使用的插件

  1)GAV

                      指定插件的标准坐标

                2)extensions

                      是否加载plugin的extensions,默认为false

                3)inherited

                      true/false,这个plugin是否应用到该pom的孩子pom,默认为true

                4)configuration

                      配置该plugin期望得到的properties

                5)dependencies

                      作为plugin的依赖

                6)executions

                      plugin可以有多个目标,每一个目标都可以有一个分开的配置,可以将一个plugin绑定到不同的阶段

                      假如绑定antrun:run目标到verify阶段

        id:标识,用于和其他execution区分。当这个阶段执行时,它将以这个形式展示 [plugin:goal execution: id]。在这里为: [antrun:run execution: echodir]
                           goals:目标列表

                          phase:目标执行的阶段

                          inherit:子类pom是否继承

                          configuration:在指定目标下的配置

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值