Mavent——学Java不会Maven,怎么行archetypeCatalog=internal
Maven简介
Maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的
Maven的优点是:节省空间(将所有需要的jar包,全部存到本地仓库)
Maven中的文件,我们只需要关注settings.xml文件。
配置本地仓库的位置:
1、Maven的常用命令
clean 清除已经编译好的文件
Compile 编译了主目录的文件
Test 编译并运行了test目录的代码
Package 打包
Install 就是把项目发布到本地仓库
tomcat:run 一键启动(当配置了使用Tomcat7插件的时候,使用tomcat7:run启动)
2、新建项目
环境变量注意事项:
目录结构
3、导入包
为了避免:
已经出现了,解决:ex
4、引入插件
<build> <finalName>HelloWorld</finalName> <!-- 配置了很多插件 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <!--使用tomcat7:run运行--> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build>
5、依赖传递
只添加了一个struts2-core依赖,发现项目中出现了很多jar,这种情况 叫 依赖传递
6、解决依赖冲突
1、第一声明优先原则
<dependencies> <!--由于引入了两个包,其中都依赖Spring-bean这个包。--> <!--1、 第一声明优先原则:只引入第一声明的bean包(默认)--> <!-- spring-beans-4.2.4 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> <!-- spring-beans-3.0.5 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> </dependency> </dependencies>
2、路径近者优先原则
<dependencies> <!-- spring-beans-4.2.4 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> <!-- spring-beans-3.0.5 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> </dependency> <!--2、路径近者优先原则:优先引入自己添加的bean--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies>
3、排除原则
<dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> <exclusions> <!--3、 排除原则:将org.springframework所依赖的bean包引入,将自己排除--> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies>
7、使用Maven搭建SSH项目
8、模块拆分
IDEA报错-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.[ERROR] Maven execution terminated abnormally (exit code 1)
一可能是jdk版本不匹配,二是在maven的runner选项上设置maven vm options:-Dmaven.multiModuleProjectDirectory=$M2_HOME