0基础入门maven

1 篇文章 0 订阅
1 篇文章 0 订阅
maven学习
1.环境配置: Mac下配置Java开发环境和Maven环境
2.jar包:strust2,spring,MyBatis
3.目录结构:
src
-main
-java
-package
-test
-java
-package
resource
4.mvn常用构建命令
mvn -v						 //查看maven版本
mvn clean					 //删除target
mvn compile					 //编译
mvn test					 //测试
mvn package					 //打包
mvn install 				     //安装jar包到本地仓库中
mvn clean compile
//创建目录的两种方式
//按照提示进行选择
mvn archetype:generate
//一次创建完成
//mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名 -DartifactId=项目名-模块名 -Dversion=版本号 -Dpackage=代码所存在的包名
mvn archetype:generate -DgroupId=com.imooc.maven04 -DartifactId=maven04-demo -Dversion=1.0.0SHAPSHOT -Dpackage=com.imooc.maven04.demo
5.自动创建目录骨架
archetype插件——用于创建符合maven规定的目录骨架
6.maven中的坐标和仓库
(1)坐标
构件
(2)仓库
本地仓库和远程仓库
/Users/barley/Downloads/apache-maven-3.5.2/lib/maven-model-builder-3.5.2.jar/org/apache/maven/model/pom-4.0.0.xml
(3)镜像仓库
/Users/barley/Downloads/apache-maven-3.5.2/conf/settings.xml
<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>
(4)更改仓库位置
<localRepository>/path/to/local/repo</localRepository>
7.在eclipse中安装maven插件以及创建maven项目
完整的项目构建过程:清理、编译、测试、打包、集成测试、验证、部署
8.maven的生命周期和插件
clean 清理项目
pre-clean 执行清理前的工作
clean    清理上一次构建生成的所有文件
post-clean 执行清理后的文件
default 构建项目(最核心)
compile
test
package
install
site 生成项目站点
pre-site 在生成站点前要完成的工作
site  生成项目的站点文档
post-site 在生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上
9.pom.xml解析
<?xml version="1.0" encoding="UTF-8"?>


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!-- 指定了当前pom的版本 -->
  <modelVersion>4.0.0</modelVersion>


  <!-- 指定项目所在位置,groupId的值就是项目的包名 -->
  <groupId>反写的公司网址+项目名</groupId>
  <groupId>com.imooc.maven01.model</groupId>
  <!-- artifactId的值是模块名,这里建议使用项目名 -->
  <artifactId>项目名-模块名</artifactId>
  <artifactId>maven01-model</artifactId>
  <!-- 版本 -->
  <!-- 第一个0表示大版本号
  第二个0表示分支版本号
  第三个0表示小版本号
  snapshot快照
  alpha内部测试
  beta公测
  Release稳定
  GA发布
   -->
  <version>0.0.1SNAPSHOT</version>
  <!-- 
  打包方式
  默认是jar
  war zip pom
   -->
  <packaging></packaging>
  <!-- 项目描述名 -->
  <name></name>
  <!-- 项目地址 -->
  <url></url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  <!-- 项目描述 -->
  <description></description>
  <!-- 开发人员列表 -->
  <developers></developers>
  <!-- 许可证 -->
  <licenses></licenses>
  <!-- 组织 -->
  <organization></organization>
  <!-- 依赖列表 -->
  <dependencies>
    <dependency>
    	<!-- 坐标 -->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <type></type>
      <!-- 依赖范围 -->
      <scope>test</scope>
      <!-- 设置依赖是否可选,默认false -->
      <optional></optional>
      <!-- 排除依赖传递列表 -->
      <exclusions>
      	<exclusion>
      		<groupId></groupId>
  			<artifactId></artifactId>
      	</exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  <!-- 依赖的管理 -->
  <dependencyManagement>
  	<dependencies>
  		<dependency></dependency>
  	</dependencies>
  </dependencyManagement>
  <build>
  	<!-- 插件列表 -->
  	<plugins>
  		<plugin>
  			<groupId></groupId>
  			<artifactId></artifactId>
  			<version></version>
  		</plugin>
  	</plugins>
  </build>
  <!-- 用于在子模块中对父模块的pom的继承 -->
  <parent></parent>
  <!-- 用来聚合运行多个manage项 -->
  <modules>
  	<module></module>
  </modules>
</project>
10.依赖的范围
<!-- 控制依赖与三种classpath(编译,测试,运行)的关系 -->
<scope>test</scope>
compile 默认的范围,编译测试运行都有效
provided 在编译和测试时有效
runtime 在测试和运行时有效
test 只在测试时有效
system 在编译和测试时有效,与本机系统相关联,可移植性差
import 导入的范围,只使用在dependencyManagement中,表示从其它的pom导入dependency的配置
11.maven依赖传递
<dependency>
    <groupId>com.hongxing</groupId>
  	<artifactId>hongxing-nage</artifactId>
 	<version>0.0.1-SNAPSHOT</version>
  	<exclusions>
  		<exclusion>
          	<groupId>com.hongxing</groupId>
  			<artifactId>hongxing-bge</artifactId>
        </exclusion>
    </exclusions>
</dependency>
12.maven依赖冲突
原则:(1)短路优先:优先解析路径短的
(2)先声明先优先:如果路径长度相同,则谁先声明,先解析谁
13.maven继承和聚合
<!-- 聚合 -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.hongxing</groupId>
  <artifactId>hongxing-aggreation</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <!-- 聚合 -->
  <packaging>pom</packaging>

  <name>hongxing-aggreation</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <modules>
  	<module>../hongxing-bge</module>
  	<module>../hongxing-nage</module>
  	<module>../hongxing-shanji</module>
  </modules>
</project>

<!-- 继承 -->
<!-- parent -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.hongxing</groupId>
  <artifactId>hongxing-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>hongxing-parent</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit.version>3.8.1</junit.version>
  </properties>

  <!-- <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies> -->
  <dependencyManagement>
  	<dependencies>
    		<dependency>
      		<groupId>junit</groupId>
      		<artifactId>junit</artifactId>
      		<version>${junit.version}</version>
      		<scope>test</scope>
    		</dependency>
  	</dependencies>
  </dependencyManagement>
</project>

<!-- child -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.hongxing</groupId>
  <artifactId>hongxing-bge</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>hongxing-bge</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <parent>
  	<groupId>com.hongxing</groupId>
  	<artifactId>hongxing-parent</artifactId>
  	<version>0.0.1-SNAPSHOT</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <!-- <version>3.8.1</version>
      <scope>test</scope> -->
    </dependency>
    <dependency>
    		<groupId>commons-io</groupId>
    		<artifactId>commons-io</artifactId>
    		<version>2.4</version>
	</dependency>
  </dependencies>
</project>

14.使用maven构建web项目,引用jetty插件

代码稍后上传到github

思考:mac下如何停止jetty服务









  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值