在乐字节学习的一天(在线更新)

在乐字节学习的第11天,学习了挺多知识,下面就是我今天在乐字节学习的知识。

Maven的安装配置和目录结构

Maven的安装配置

检查JDK的版本

​ JDK版本1.7及以上版本

配置Maven环境变量

​ 解压后把Maven的根目录配置到系统环境变量中MAVEN_HOME,将bin目录配置到path变量中。

​ 注:maven解压后存放的目录不要包含中文和空格

检查Maven是否安装成功

​ 打开dos窗口,执行 mvn -v[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YwOdc7AK-1603960659116)(E:/文章/文章/images/maven_1.png)]

认识Maven目录结构

Maven项目目录结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DDFvx0y-1603960659120)(E:/文章/文章/images/maven_2.png)]

任务:手动创建一个Maven项目,并编译运行成功!

创建一个文件夹作为项目的根目录

在根目录中创建一个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">
         		
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xxxx</groupId>
  <artifactId>maven01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven01</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>
  
</project>

Ps:标签定义解释

根目录下的第一个子元素 ModelVersion指定当前Pom模型的版本,对于Maven3来说,它只能是4.0.0 。指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0

groupId定义了项目属于哪个组, 这个组往往和项目所在的组织和公司存在关联。 
比如: com.xxxx

artifactId 定义了当前Maven项目在组中唯一的ID。

Version  X.X.X-里程碑
比如:1.0.0-SNAPSHOT     
第一个X 大版本 有重大变革
第二个X 小版本  修复bug,增加功能
第三个X 更新

里程碑版本: 
SNAPSHOT (快照,开发版)
alpha(内部测试)
beta(公开测试)
Release | RC( 发布版)
GA(正常版本)

使用name标签声明一个对于用户更为友好的项目名称,虽然不是必须的,但还是推荐为每个Pom声明name,以方便信息交流。
编写主函数
package com.xxxx.demo;
public class Hello{
    public static void main(String[] args) {
        System.out.println("hello maven");
    }
}
cmd 下编译并运行

​ cmd下面,进入项目的根目录

​ 1. 编译java文件

​ mvn compile

​ 2. 执行main 方法

​ mvn exec:java -Dexec.mainClass=“com.xxxx.demo.Hello”

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OIRr79Dq-1603960659123)(E:/文章/文章/images/maven_3.png)]

注:第一次下载会比较慢,要修改maven解压之后的conf目录下的settings.xml。

1.1.修改默认仓库位置
打开maven目录 -> conf -> settings.xml
添加仓库位置配置
<localRepository>F:/m2/repository</localRepository>
注:仓库位置改为自己本机的指定目录,"/"不要写反

1.2.更换阿里镜像,加快依赖下载
<mirror>  
	  <id>nexus-aliyun</id>  
	  <mirrorOf>central</mirrorOf>    
	  <name>Nexus aliyun</name>  
	  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

如果编译不成功,可能出现的问题

1. 不是使用管理员权限执行dos命令
2. JDK环境配置有问题,重装JDK
3. 代码编写时,类里面没设置包名(如果编译时类没加包名,执行时也不需要加包名)

Maven命令

​ 作为开发利器的maven,为我们提供了十分丰富的命令,了解maven的命令行操作并熟练运用常见的maven命令还是十分必要的,即使譬如IDEA等工具给我提供了图形界面化工具,但其底层还是依靠maven命令来驱动的。

Maven的命令格式如下:

mvn [plugin-name]:[goal-name]

命令代表的含义:执行plugin-name插件的goal-name目标

常用命令

命令描述
mvn –version显示版本信息
mvn clean清理项目生产的临时文件,一般是模块下的target目录
mvn compile编译源代码,一般编译模块下的src/main/java目录
mvn package项目打包工具,会在模块下的target目录生成jar或war等文件
mvn test测试命令,或执行src/test/java/下junit的测试用例.
mvn install将打包的jar/war文件复制到你的本地仓库中,供其他模块使用
mvn deploy将打包的文件发布到远程参考,提供其他人员进行下载依赖
mvn site生成项目相关信息的网站
mvn eclipse:eclipse将项目转化为Eclipse项目
mvn dependency:tree打印出项目的整个依赖树
mvn archetype:generate创建Maven的普通java项目
mvn tomcat7:run在tomcat容器中运行web应用
mvn jetty:run调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
注意:运行maven命令的时候,首先需要定位到maven项目的目录,也就是项目的pom.xml文件所在的目录。否则,必以通过参数来指定项目的目录。

命令参数

​ 上面列举的只是比较通用的命令,其实很多命令都可以携带参数以执行更精准的任务。

-D 传入属性参数

例如:
mvn package -Dmaven.test.skip=true

​ 以-D开头,将maven.test.skip的值设为true,就是告诉maven打包的时候跳过单元测试。同理,mvn deploy-Dmaven.test.skip=true代表部署项目并跳过单元测试。

-P 使用指定的Profile配置

​ 比如项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,在pom.xml中的配置如下:

<profiles>
      <profile>
             <id>dev</id>
             <properties>
                    <env>dev</env>
             </properties>
             <activation>
                    <activeByDefault>true</activeByDefault>
             </activation>
      </profile>
      <profile>
             <id>qa</id>
             <properties>
                    <env>qa</env>
             </properties>
      </profile>
      <profile>
             <id>pre</id>
             <properties>
                    <env>pre</env>
             </properties>
      </profile>
      <profile>
             <id>prod</id>
             <properties>
                    <env>prod</env>
             </properties>
      </profile>
</profiles>
 
......
 
<build>
      <filters>
             <filter>config/${env}.properties</filter>
      </filters>
      <resources>
             <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
             </resource>
      </resources>
 
      ......
 
</build>

profiles定义了各个环境的变量idfilters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值,resources中是定义哪些目录下的文件会被配置文件中定义的变量替换。

​ 通过maven可以实现按不同环境进行打包部署,例如:

mvn package -Pdev -Dmaven.test.skip=true

​ 表示打包本地环境,并跳过单元测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值