Back

Maven笔记

简介

项目构建和管理自动化工具

  1. 坐标(可由groupId、artifactId、version组成)。

  2. 构件通过坐标作为其唯一标识。

  3. 仓库:

    • 远程仓库:maven-model-builder-3.3.3.jar\org\apache\maven\model,超级pom.xml文件,全球中央仓库地址:https://repo.maven.apache.org/maven2

    • 镜像仓库:/conf/setting文件:

      <mirror>
          <id>maven.net.cn</id>
          <mirrorOf>central</mirrorOf>
          <name>central mirror in china</name>
          <url>http://maven.net.cn/content/groups/public</url>
      </mirror>
      
      
      
    • 本地仓库:修改本地仓库的位置 <localRepository>D:/Maven/repository</localRepository>

  4. 指定jdk1.7

    <profile>
        <id>jdk-1.7</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.7</jdk>
        </activation>	
        <properties>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
            <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
        </properties>
    </profile>
    

    ``

常用构建命令

mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 删除target
mvn install 安装jar包到本地仓库

自动创建目录骨架

  1. archetype:generate 按照提示进行
  2. archetype:generate -DgroupId=组织名, 公司网址的反写+项目名
    -DartifactId=项目名-模块名
    -Dversion=版本号
    -Dpackage=代码所存在的包

完整的项目构建过程

清理、编译、测试、打包、集成测试、验证、部署

maven生命周期

clean:清理项目
	- pre-clean :执行清理前的工作
	- clean:清理上一次构建生成的所有文件
	- post-clean:执行清理后的文件
default:构建项目
	- compile test package install
site:生成项目站点
	- pre-site 在生成项目站点之前要完成的工作
	- site 生成项目的站点文档
	- post-site在生成项目站点后要完成的工作
	- site-deploy发布生成的站点到服务器上

pom结构

project (根元素,包含约束信息)
	modelVersion  指定了当前pom版本
	groupId    反写的公司网址+项目名
	artifactId  项目名+模块名
	version     版本号  第一个0表示大版本号,第二个0表示大版本号,第三个0表示大版本号 0.0.1snapshot快照 alpha內部測試 beta公测 Release稳定 GA正式发布
	packaging   打包方式 默认是jar

	name       项目的描述名
	url       项目的地址
	description  项目描述
	developers   开发人员信息
	licenses    许可证信息
	
	dependencies 
		-dependency {依赖冲突 1.短路优先(优先依赖最近的模块)2.先声明先优先}
			-groupId
			-artifactId
			-version
			-type	
			-scope    依赖范围 [默认compile、provided、runtime、test、system、import]
			-optional 设置依赖是否可选
			-exclusions
				-exclusion
					-groupId
					-artifactId

	dependencyManagement   依赖管理  不会被运行(子模块来引用)
		-dependencies
			-dependency
			
	build
		-plugins  插件列表(指出坐标)
			-plugin
				-groupId
				-artifactId
				-version
				
	parent    对父模块的继承
		-groupId	[org..]
		-artifactId [jetty\tomcat..]
		-version [...]
		-executions
			-execution	在打包成功后使用 jetty\tomcat:run来运行jetty服务
				-phase [package]
				-goals [run]
					-goal
	modules   定义多个模块  一起进行编译
		-module [聚合的项目、模块]
		


问题记录

Could not calculate build plan

  1. 将C:\User.m2\repository\org\apache\maven\plugins\maven-deploy-plugin目录下的文件夹删除;
  2. 右击项目Maven->Update Project->Update Dependencies

Missing artifact

  1. 看看本地仓库是否有这个jar的目录,目录里是否有该jar的一个后缀为lastUpdated的文件;
  2. 如果有就把这个文件删掉,再update一下dependency就行了。
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus