maven基本学习及Idea配置
maven基本学习
maven是一个用来管理jar包、jar包的依赖、构建项目的工具。
maven的设置
我们安装完maven后,在其目录下有一个config/settings.xml,在这个文件里面可以进行一些修改,常见修改有修改本地仓库位置以及你需要下载仓库的位置,一般下载的位置我们用国内镜像这样会快一下:
<localRepository>D:\code\mvn_repository</localRepository>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
maven项目的目录
project
src
--main
--java
--resources
--test
--java
--resources
pom.xml
pom.xml里面配置整个maven构建过程中需要的依赖,插件等内容,main/ 下面的java存储的是对应的jave文件,resource存储资源文件(在编译后会放到类目录中)。
maven中坐标以及添加依赖
maven中的坐标只的是在互联网中唯一标识一个项目的值。通过:
<groupId>公司域名的倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定版本号</version>
来唯一决定。可以在maven中央仓库中找别人的包。
我们可以在dependencies添加多个依赖,也就是别的的jar包,这个可以在https://mvnrepository.com/ 里面找到,如下面这个例子:
<groupId>org.example</groupId>
<artifactId>spring_learn</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
</dependencies>
表示我们自己的坐标的groupId是org.example,自己的项目名是spring_learn,版本是1.0-SNAPSHOT,以后我们开发完后,然后打包,别人就可以通过这个坐标来找到我们的jar包了。
而下面的dependency就是我们引入的别人的jar包,这里引入了spring的。
maven构建过程
maven的构建是面向过程的,包括清理、编译、测试、报告、打包、安装、部署等。
maven清理通过:mvn clean命令,这个可以将之前的编译结果清空。
maven编译可以通过:mvn compile命令,这个命令可以将我们的src/main下面的java文件编译成class文件,放到和src同级的的target/classes里面,同时把src/main/resources里面的配置文件放到target/classes里面。
编译后,你也可以手动的到calsses目录里面去执行你的字节码:比如java com.Main。
maven测试:通过mvn test命令,可以将src/test里面的东西编译到target/test-classes里面,然后会自动运行带有测试注解的方法。 注意src/test/java里面的包名什么的要和src/main/java里面的保持一致。
maven打包:mven package 会把你的代码打包到target下面,文件名就是你的artifactId
maven安装:maven install 会把你的jar包安装的本地仓库,本地仓库的目录是你的本地仓库目录/你的groupId
maven插件
maven在构建项目的时候其实是通过很多插件来实现的,所以你在编译的时候会有[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @
这样的输出,其实就是用例一个编译插件,所以我们在编译一个maven项目的时候,即使pom里面什么都没有配置,仍需要下载很多东西,其实就是在下载默认的一些插件,插件我们可以通过一下方式配置:
<build>
<plugins>
<plugin>
</plugin>
</plugins>
</build>
你可以在plug里面添加一些插件以及这些插件的配置,比如我们默认的编译插件,我们可以通过配置他的java版本等。
Idea配置
Idea配置需要配置两次,一个是本项目设置一下,另外就是给其他项目也设置一下,这样以后再进行新建就不用设置了。
本项目配置
在File | Settings | Build, Execution, Deployment | Build Tools | Maven
需要修改三个位置,Maven home director-这个你就选择你安装的maven的目录即可。User settings file-这个就是文章开头说的那个settings.xml, Local repository-这个就是开头说的你本地仓库的地址,一般修改完User settings file这个会自动根据settings.xml里面自动更新,如果没有,你就手动选择一下。
然后在File | Settings | Build, Execution, Deployment | Build Tools | Maven | Runner
里面选择一下JRE的版本即可。
其他项目配置
这个在File | New Projects Settings | Setting for new project| Build, Execution, Deployment | Build Tools | Maven
里面,好像不同版本的不一样,你可以网上搜索一下。而里面的配置内容,则和本项目保持一致即可。
常见问题
控制台乱码
Maven | Runner 里面配置一下VMoptions: -Dfile.encoding=GB2312
java: 程序包org.springframework.context不存在
Maven|Runner 里面把Delegate IDE build/run actions to Maven勾选上,这个可能是不同IDEA版本,这个意思是把我们IDE的构建等托管给maven,否则你如果直接点击IDE的在代码里面的绿色运行一般就会报上面的错误,你只能够通过Ide的maven里面的lifecycle里面的clean,compile,test这些来运行,而托管后,我们直接用ide里面的绿色箭头也能直接运行。