maven(项目依赖管理)

简介: Maven,['meɪv(ə)n],项目构建管理工具,用于告诉编译器项目中各文件之间的依赖关系等。 pom.xml 文件指定了项目的依赖关系。 1.repository仓库 Maven的仓库分为本地仓库和远程仓库。 本地仓库:是Maven在我们本机设置的仓库目录,默认目录为 当前用户目录/.m2/repository。 远程仓库:联网时才能用,从这里下载jar。 默认远程仓

Maven,['meɪv(ə)n],项目构建管理工具,用于告诉编译器项目中各文件之间的依赖关系等。

pom.xml 文件指定了项目的依赖关系。

1.repository仓库

Maven的仓库分为本地仓库和远程仓库。
本地仓库:是Maven在我们本机设置的仓库目录,默认目录为  当前用户目录/.m2/repository
远程仓库:联网时才能用,从这里下载jar。

默认远程仓库因为访问量大,速度慢,所以可以自己临时替换远程仓库位置。
.m2/ 目录下有个settings.xml配置文件,在<mirrors>节点内部增加<mirror>节点就可以了。
一个示例:

<mirror>  
      <id>jboss-public-repository-group</id>  
      <mirrorOf>*</mirrorOf>  
      <name>JBoss Public Repository Group</name>  
     <url>http://repository.jboss.org/nexus/content/groups/public</url>  
</mirror> 

对eclipse中的maven插件有效。<mirror>配置修改实时生效,不需重启eclipse。


2.mvn项目结构

maven默认的文件存放结构如下:
/项目目录
pom.xml 用于maven的配置文件
/src 源代码目录
/src/main 工程源代码目录
/src/main/java 工程java源代码目录
/src/main/resource 工程的资源目录
/src/test 单元测试目录
/src/test/java
/target 输出目录,所有的输出物都存放在这个目录下
/target/classes 编译之后的class文件
SNAPSHOT:如果一个版本包含字符串"SNAPSHOT",Maven就会在安装或发布这个组件的时候将该符号展开为一个日期和时间值,转换为UTC时间。例 如,"1.0-SNAPSHOT"会在2010年5月5日下午2点10分发布时候变成1.0-20100505-141000-1。

3.maven项目与eclipse项目互转

3.1 eclipse->maven

已有eclipse普通项目转化为maven项目,右击项目名,按照下图3-1选择。


图 3-1 

3.2 maven->eclipse

一个原本的maven项目是没有.classpath与.project这些文件的。所以在用eclipseIDE的时候要创建它们,可以用命令 mvn eclipse:eclipse 来生成这些文件。
微笑问: mvn eclipse:cleanmvn clean 的区别是什么?
答:前者是清除已有的.classpath与.project这些东西;后者是清除mvn在 target/ 目录下面的一些东西。

4.maven生命周期

从前到后依次是compile、test、package、install、deploy。

4.1 compile

compile任务就是从src/main/java下编译所有的java文件,并把它的输出class文件存放到target/classes中。
本地的jdk是1.8,但目标服务器的环境是jdk1.7,那么就要指定编译的版本,可用下面插件解决:
<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.1</version>
	<configuration>
	<span style="white-space:pre">	</span><source>1.7</source>
		<target>1.7</target>
	</configuration>
</plugin>

4.2 test

略。

4.3 package

打包。可参见插件 文章。

4.4 install

将自己的项目打包进本地仓库中。这样自己的其他项目就可以依赖它了。

常见错误

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

解决方法:Library中的jre变成jdk,下图:


附带源码

可以使用maven-source-plugin插件。



4.5 deploy

用于发布到远程仓库。



目录
相关文章
|
29天前
|
Java Maven
手把手教你搭建Maven项目
手把手教你搭建Maven项目
28 0
|
2月前
|
Java Maven
java修改当前项目的maven仓库地址为国内
修改当前项目的maven仓库地址为国内
|
3月前
|
Dubbo Java 应用服务中间件
微服务框架(十)Maven Archetype制作Dubbo项目原型
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Maven Archetype的制作及使用,使用archetype插件制作Dubbo项目原型
|
3月前
|
前端开发 Java Maven
IEAD MAVEN创建springboot 项目
IEAD MAVEN创建springboot 项目
27 0
|
3月前
|
Java API Maven
JFinal5+Jetty2009+IDEA2020+Java8的非Maven-Demo项目
JFinal5+Jetty2009+IDEA2020+Java8的非Maven-Demo项目
22 1
|
23天前
|
Java Maven 开发工具
maven导入项目出现Unable to import maven project: See logs for details
maven导入项目出现Unable to import maven project: See logs for details
11 0
maven导入项目出现Unable to import maven project: See logs for details
|
7天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
8 1
|
11天前
|
Java Maven
SpringMVC常用Maven POM.xml依赖包片段
SpringMVC常用Maven POM.xml依赖包片段
|
22天前
|
Java Maven
maven项目导出可执行jar
maven项目导出可执行jar
27 0
|
23天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
11 0