文章目录
总结
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.只需要在父工程添加插件子工程便都有了