【Maven】maven易错点(补充中)

文章目录

总结

1.mvn package会把jar或者war打包到 target目录下
2.jar只包含 src/main下的所有内容
3.mvn install会把你的jar按照坐标保存到本地仓库中,代表把项目安装到仓库中
4.完全可以使用你自己install到本地仓库的jar 和其他jar一样 dependency配一下就好

使用模板创建项目
1.maven-archtype-quickstart:普通java工程
2.maven-archtype-webapp:web工程

1.使用archtype后自动生成这些插件,这些插件即使没有写入pom中也是默认存在的,
2.写上去只是为了配置这些插件的版本等等,如果不需要配置完全可以删掉,都是默认加入的
3.比如配置插件的configuration,如果不配置configuration,完全可以把插件删掉在这里插入图片描述
在这里插入图片描述

web工程自动打包成war包,然后不用idea直接扔到tomcat目录下,使用tomcat直接启动便可访问项目

在这里插入图片描述在这里插入图片描述

1.scope为compile的jar包,在项目执行mvn package时,会一起打包到web工程的war中的WEB-INF/lib中,是说什么生命周期都是使用scope为compile的jar包,没有它项目无法进行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.scope为test/provided的jar包,在mvn package后,不会放到web的war中去。
3.scope为provided意思是服务器已经有了,不需要自己提供了的jar

maven常用设置

1.资源插件的作用(mybatis课程中会用到这个作用)
a.默认没有使用resources的时候,maven执行编 译代码时,会 把src/main/ resources目录中的文件拷贝到target/classes目录中
对于src/main/java 目录下的非java文件不处理,不拷贝到target/classes目录中
b.我们的程序有需要把一些文件放在src/main/java 目录中,当我在执行java程序时,需要用到src/main/java目录中的文件。需要告诉maven在mvn compile src/main/java目录下的程序时,需要把文件一同拷贝到target/classes目录中。此时就需要在build中加入resources,其实是方便以后mybatis框架使用。

<build>
	<resources>
		<resource>
			<di rectory> src/main/java</directory><!--所在的目录-->
			<includes><!--包括目录下的. properties, .xmnl文件都会扫描到-->
			<inc1ude>**/* . properties</ include>
			<include>**/* . xml</include>
			</ includes>
			<!- filtering选项false 不启用过滤器,* .property已经起到过滤的作用了- - >
			<filtering>false</ filtering>
		</resource>
	</resources>
</build>

2.maven属性设置 设置maven常用属性

3.maven全局变量

如果子模块指定依赖的版本号那就不会继承父工程依赖的版本号,相当于父工程在pom中管理一堆版本号而已

<dependencies>
    <!--声明式依赖-->
    <!--子模块依赖的版本号继承父工程依赖的版本号-->
    <!--如果子模块指定依赖的版本号那就不会继承父工程依赖的版本号-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <!--<version>5.1.43</version>-->
    </dependency>
  </dependencies>

既然父工程管理版本号不如抽出来全局变量单独管理更加方便

<!--父管理依赖的版本号-->
  <properties>

    <!--自定义标签名称-->
    <!--
        通常管理依赖版本号的标签名称由 = 项目名称+字段version
    -->
    <junit-version>4.10</junit-version>
    <mysql-connector-java-version>8.0.19</mysql-connector-java-version>
    <!--<dubbo.version>2.6.2</dubbo.version>-->
    <dubbo.version>2.6.0</dubbo.version>
    <!--<spring-webmvc-version>4.3.16.RELEASE</spring-webmvc-version>-->
    <spring-webmvc-version>5.2.5.RELEASE</spring-webmvc-version>
  </properties>

1.我们使用的jdk是1.8
在这里插入图片描述

2.但是通过设置中我们发现我们的编译级别其实是1.5,导致有些东西可以写,但是编译不过
在这里插入图片描述
3.所以我们只需要在父工程pom中加入编译插件,则所有子工程的编译级别都变成了1.8,这说明父工程不仅管理jar也管理插件
在这里插入图片描述

<build>
    <plugins>
      <!--JDK1.8编译插件-->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

4.只需要在父工程添加插件子工程便都有了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值