Maven系列第2篇:安装、配置、mvn运行过程详解

maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。

这是maven系列第2篇。

本文主要内容

  1. linux中安装maven

  2. window中安装maven

  3. mvn命令运行的原理

  4. maven配置设置

本篇环境

  1. jdk1.8

  2. maven3.6.2

我们要写java代码,需要安装jdk,那我们要使用maven,也类似,需要在我们的机器中安装maven。

linux中安装安装maven

maven是使用java语言编写的,所以我们要运行maven,需要先安装jdk。

安装jdk
下载jdk

本次我们安装jdk1.8,可以到oracle官网上去下载jdk-8u181-linux-x64.tar.gz,将其放在/opt/jdk目录中,如下:

[root@ady01 jdk]# cd /opt/jdk/
[root@ady01 jdk]# ll
total 181300
-rw-r--r-- 1 root root 185646832 Nov  1 13:30 jdk-8u181-linux-x64.tar.gz
解压jdk
[root@ady01 jdk]# tar -zvxf jdk-8u181-linux-x64.tar.gz
[root@ady01 jdk]# ll
total 181304
drwxr-xr-x 7   10  143      4096 Jul  7  2018 jdk1.8.0_181
-rw-r--r-- 1 root root 185646832 Nov  1 13:30 jdk-8u181-linux-x64.tar.gz
配置环境变量

在/etc/profile文件末尾追加下面几行

export JAVA_HOME=/opt/jdk/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

这个地方扩展个知识点:

有个知识点我们说一下,系统运行java或者其他外部命令的时候,系统是如何找到这些命令的?

linux中会去PATH对应的所有目录中寻找这个命令,找到了就可以直接运行,如果没有设置PATH,我们需要知道命令的完整路径才可以运行,所以使用PATH更方便一些。

window中,也有个系统变量PATH,这个PATH的值是由很多目录的地址组成的,当我们执行一个命令的之后,系统会去PATH对应的所有目录中寻找我们运行的命令,找到了就可以直接运行,比如你们想快速启动其他的一些软件,可以将这些软件的设置到PATH变量中,可以在cmd命令中快速启动了。

运行下面命令使环境变量生效
[root@ady01 jdk1.8.0_181]# source /etc/profile
验证jdk是否正常

查看jdk版本

[root@ady01 jdk]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

新建/opt/jdk/HelloWorld.java,内容如下:

public class HelloWorld {public static void main(String[] args) {System.out.println("hello maven!");}
}

运行下面的命令:

[root@ady01 jdk]# cd /opt/jdk/
[root@ady01 jdk]# javac HelloWorld.java 
[root@ady01 jdk]# java HelloWorld
hello maven!

恭喜,输出hello maven表示正常,jdk安装成功!

安装maven
下载maven

咱们到maven官网中下载最新的maven,地址如下:

https://maven.apache.org/download.cgi

最新的版本是apache-maven-3.6.2,linux中我们需要下载apache-maven-3.6.2-bin.tar.gz这个。

[root@ady01 jdk]# mkdir /opt/maven
[root@ady01 jdk]# cd /opt/maven/
[root@ady01 maven]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
--2019-11-01 13:47:11--  http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9142315 (8.7M) [application/octet-stream]
Saving to: ‘apache-maven-3.6.2-bin.tar.gz’100%[==================================================================================================================================>] 9,142,315   10.2MB/s   in 0.9s   2019-11-01 13:47:13 (10.2 MB/s) - ‘apache-maven-3.6.2-bin.tar.gz’ saved [9142315/9142315]
[root@ady01 maven]# ls
apache-maven-3.6.2-bin.tar.gz

上面我们创建了/opt/maven目录用来存放maven相关软件,然后使用到wget命令,这个是linux中的一个命令,可以访问一个http地址,将其下载到当前目录。

解压maven
[root@ady01 maven]# tar -zvxf apache-maven-3.6.2-bin.tar.gz
[root@ady01 maven]# ls
apache-maven-3.6.2  apache-maven-3.6.2-bin.tar.gz
maven目录结构
[root@ady01 maven]# ll /opt/maven/maven/
total 40
drwxr-xr-x 2 root  root   4096 Nov  1 13:49 bin
drwxr-xr-x 2 root  root   4096 Nov  1 13:49 boot
drwxrwxr-x 3 mysql mysql  4096 Aug 27 23:01 conf
drwxrwxr-x 4 mysql mysql  4096 Nov  1 13:49 lib
-rw-rw-r-- 1 mysql mysql 12846 Aug 27 23:09 LICENSE
-rw-rw-r-- 1 mysql mysql   182 Aug 27 23:09 NOTICE
-rw-rw-r-- 1 mysql mysql  2533 Aug 27 23:01 README.txt
  1. bin:存放可以执行的文件

  2. conf:存放maven的配置文件

  3. lib:maven是java编写的,里面会用到很多第三方的jar包,这些jar包位于lib中

创建一个软连接指向apache-maven-3.6.2目录
[root@ady01 maven]# ln -s apache-maven-3.6.2 maven
[root@ady01 maven]# ll
total 8936
drwxr-xr-x 6 root root    4096 Nov  1 13:49 apache-maven-3.6.2
-rw-r--r-- 1 root root 9142315 Sep  3 05:43 apache-maven-3.6.2-bin.tar.gz
lrwxrwxrwx 1 root root      18 Nov  1 13:56 maven -> apache-maven-3.6.2

ln –s 源文件 目标文件是linux中的一个命令,windows中的快捷方式都知道吧,这个相当于给源文件创建了一个快捷方式,快捷方式的名称叫做目标文件

ln -s apache-maven-3.6.2 maven是指给apache-maven-3.6.2创建了一个快捷方式maven,访问maven就相当于访问apache-maven-3.6.2

此处为什么需要用快捷方式?

以后升级maven更方便一些,以后如果我们需要将maven升级到最新的版本,比如3.7,那么只需下载3.7到当前目录,再运行一下ln -s apache-maven-3.7 maven命令修改一下快捷方式的指向就行了,很方便。

配置maven环境变量

在/etc/profile文件末尾追加下面几行

export M2_HOME=/opt/maven/maven
export PATH=$M2_HOME/bin:$PATH
运行下面的命令让环境变量生效
[root@ady01 maven]# source /etc/profile
验证maven是否正常
[root@ady01 maven]# mvn -v
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: /opt/maven/maven
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /opt/jdk/jdk1.8.0_181/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.2.2.el7.x86_64", arch: "amd64", family: "unix"

mvn -v输出maven的版本号信息,若输出和上面类似,那么恭喜你,maven安装成功!

window安装maven

安装jdk
下载jdk

我们以jdk1.8为例,到oracle官网下载jdk-8u121-windows-x64.exe

安装jdk文件

双击jdk-8u121-windows-x64.exe运行。

更改安装地址,如下:

图片

上图中的地址为默认地址,本次我们将其改为D:\installsoft\Java\jdk1.8.0_121,大家也可以根据自己的需求修改安装地址。

然后点击下一步

图片

上图中是jre的默认地址,我们将其改为D:\installsoft\Java\jre1.8.0_121

配置环境变量

桌面上选中此电脑->鼠标右键点击属性->高级系统设置->高级->环境变量->新建,如下:

图片

图片

图片

图片

上图中新建环境变量JAVA_HOME,值为D:\installsoft\Java\jdk1.8.0_121,如下图:

图片

新建环境变量CLASSPATH,值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

修改环境变量PATH,在PATH的值中添加%JAVA_HOME%\bin

验证jdk是否正常

查看jdk版本,cmd窗口中运行java -version,如下:

C:\Users\Think>java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

新建D:/HelloWorld.java,文件编码格式为utf-8,内容如下:

public class HelloWorld {public static void main(String[] args) {System.out.println("hello maven!");}
}

运行下面的命令:

C:\Users\Think>D:
D:\>javac -encoding utf-8 HelloWorld.java
D:\>java HelloWorld
hello maven!

恭喜,输出hello maven表示正常,jdk安装成功!

安装maven
下载maven3.6.2
下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz
解压

放在D:\installsoft\maven目录,如下图

图片

配置环境变量

这个地方参考上面jdk环境变量的配置。

新建环境变量M2_HOME,值为:

D:\installsoft\maven\apache-maven-3.6.2

修改环境变量PATH,在PATH的值中添加%M2_HOME%\bin

验证maven是否正常
C:\Users\Think>mvn -v
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T23:06:16+08:00)
Maven home: D:\installsoft\maven\apache-maven-3.6.2\bin\..
Java version: 1.8.0_121, vendor: Oracle Corporation, runtime: D:\installsoft\Java\jdk1.8.0_121\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

mvn -v输出maven的版本号信息,若输出和上面类似,那么恭喜你,maven安装成功!

Maven的运行原理详解

本文后面会用到~这个符号,先对这个符号做一下说明,这个符号表示当前用户的目录

window中默认在C:\Users\用户名

linux root用户默认在/root目录,其他用户的~对应/home/用户名

后面的文章中我们就用~表示用户目录,这个地方不再说明。

运行下面命令,看一下效果

C:\Users\Think>mvn help:system
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom (4.7 kB at 4.0 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom (12 kB at 21 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom (33 kB at 44 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jar (24 kB at 12 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom (15 kB at 13 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pom (13 kB at 33 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jar
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jar (209 kB at 29 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom (11 kB at 14 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
Progress (1): 153 kB

上面运行mvn help:system命令之后,好像从https://repo.maven.apache.org站点中在下载很多东西,最后又输出了系统所有环境变量的信息。

我们来详细看一下mvn help:system这个命令的运行过程:

  1. 运行mvn help:system之后

  2. 系统会去环境变量PATH对应的所有目录中寻找mvn命令,然后在D:\installsoft\maven\apache-maven-3.6.2\bin中找到了可执行的mvn文件

  3. 运行mvn文件,也就是执行mvn命令

  4. 通常一些软件启动的时候,会有一个启动配置文件,maven也有,mvn命令启动的时候会去~/.m2目录寻找配置文件settings.xml,这个文件是mvn命令启动配置文件,可以对maven进行一些启动设置(如本地插件缓存放在什么位置等等),若~/.m2目录中找不到settings.xml文件,那么会去M2_HOME/conf目录找这个配置文件,然后运行maven程序

  5. mvn命令后面跟了一个参数:help:sytem,这个是什么意思呢?这个表示运行help插件,然后给help插件发送system命令

  6. maven查看本地缓存目录(默认为~/.m2目录)寻找是否有help插件,如果本地没有继续下面的步骤

  7. maven会去默认的一个站点(apache为maven提供的一个网站[repo.maven.apache.org],这个叫中央仓库)下载help插件到~/.m2目录

  8. 运行help插件,然后给help插件发送system指令,help插件收到system指令之后,输出了本地环境变量的信息,如果系统找不到指定的插件或者给插件发送无法识别的命令,都会报错

上面这个过程大家再感受一下,maven中所有的命令都是以插件的形式提供的,所以maven扩展也是相当容易的。

mvn 插件名称:help

上面这种会输出插件的帮助文档,来感受一个:

C:\Users\Think>mvn clean:help
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:help (default-cli) @ standalone-pom ---
[INFO] org.apache.maven.plugins:maven-clean-plugin:2.5Maven Clean PluginThe Maven Clean Plugin is a plugin that removes files generated at build-timein a project's directory.This plugin has 2 goals:clean:cleanGoal which cleans the build.This attempts to clean a project's working directory of the files that weregenerated at build-time. By default, it discovers and deletes the directoriesconfigured in project.build.directory, project.build.outputDirectory,project.build.testOutputDirectory, and project.reporting.outputDirectory.Files outside the default may also be included in the deletion by configuringthe filesets tag.clean:helpDisplay help information on maven-clean-plugin.Callmvn clean:help -Ddetail=true -Dgoal=<goal-name>to display parameter details.[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.372 s
[INFO] Finished at: 2019-11-01T17:59:04+08:00
[INFO] Final Memory: 15M/487M
[INFO] ------------------------------------------------------------------------

这些后面还会详细介绍。

Maven的一些配置

启动文件设置

上面提到了mvn运行的时候,会加载启动的配置文件settings.xml,这个文件默认在M2_HOME/conf目录,一般我们会拷贝一个放在~/.m2目录中,前者是全局范围的配置文件,整个机器上所有用户都会受到该配置的影响,而后者是用户范围级别的,只有当前用户才会受到该配置的影响。推荐使用用户级别的,将其放在~/.m2目录,而不去使用全局的配置,以免影响到其他用户的使用。还有这样使用方便日后maven版本升级,一般情况下maven整个安装目录我们都不要去动,升级的时候只需要替换一下安装文件就可以了,很方便。

配置本地缓存目录

settings.xml中有个localRepository标签,可以设置本地缓存目录,maven从远程仓库下载下来的插件以及以后所有我们用到的jar包都会放在这个目录中,如下:

<localRepository>C:/Users/Think/.m1/repository</localRepository>

总结

  1. 掌握maven的安装过程

  2. ~表示当前用户目录

  3. maven的配置文件settings.xml一般我们放在~/.m2目录中,方便maven的升级,避免影响其他用户的配置

  4. 了解mvn命令的执行过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序案例:2-2本地生活

文章目录 一、实现步骤&#xff08;一&#xff09;创建项目&#xff08;二&#xff09;创建页面&#xff08;三&#xff09;准备图片素材&#xff08;四&#xff09;编写页面结构1、编写轮播区域页面结构2、编写九宫格区域页面结构 &#xff08;五&#xff09;编写页面样式1、编…

【PPT制作】基础篇

文章目录 一、PPT制作必要的基础设置1.1 自动保存1.2 字体嵌入1.3 撤销步数1.4 图像大小和质量 二、必备快捷键三、设计四原则四、总结 ヾ(๑╹◡╹)&#xff89;" 没有坚持的努力&#xff0c;本质上并没有多大意义ヾ(๑╹◡╹)&#xff89;" 一、PPT制作必要的基础…

MinIO的安装与使用

文章目录 1.MINIO是什么&#xff1f;2.MINIO安装3.启动脚本4.打开MINIO页面5.MC命令6.MINIO备份脚本 1.MINIO是什么&#xff1f; MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。 MinIO与…

Python 人工智能 Machine Learning 机器学习基础知识点详细教程(更新中)

人工智能基本介绍 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它试图了解智能的实质&#xff0c;并生产出一种新的能以人类智能相似的方式做出反应的智…

c++视觉--通道分离,合并处理,在分离的通道中的ROI感兴趣区域里添加logo图片

c视觉–通道分离&#xff0c;合并处理 通道分离: split()函数 #include <opencv2/opencv.hpp>int main() {// 读取图像cv::Mat image cv::imread("1.jpg");// 检查图像是否成功加载if (image.empty()) {std::cerr << "Error: Could not read the…

为什么选择虚拟展会展览?了解虚拟展会展览的应用领域

引言&#xff1a; 相较于传统的实体展览&#xff0c;虚拟展会展览具有吸引力和便捷性&#xff0c;能够在全球范围内进行宣传活动。这种创新形式不仅能够降低成本、扩大受众范围&#xff0c;还能够提供没有过的互动性和数据分析。 一&#xff0e;虚拟展会展览简介 虚拟展会展览…

Laya3.0 入门教程

点击play箭头 点击右边的开发者工具 就会弹出 chrome的调试窗口 然后定位到你自己的ts文件 直接在ts里断点即可 不需要js文件 如何自动生成代码&#xff1f; 比如你打开一个新项目 里面显示的是当前场景 只需要点击 UI运行时 右边的框就可以了 他会自动弹窗提示你 创建一个文…

虹科分享 | 确保冻干工艺开发中精确测量和数据完整性的5步指南

虹科分享 | 确保冻干工艺开发中精确测量和数据完整性的5步指南 介绍 冻干周期的工艺开发在冻干中起着至关重要的作用&#xff0c;因为它可以优化关键工艺参数&#xff0c;以实现理想的产品质量和工艺一致性。优化冻干工艺还可以缩短运行时间&#xff0c;尽早发现关键错误&…

Practical Memory Leak Detection using Guarded Value-Flow Analysis 论文阅读

本文于 2007 年投稿于 ACM-SIGPLAN 会议1。 概述 指针在代码编写过程中可能出现以下两种问题&#xff1a; 存在一条执行路径&#xff0c;指针未成功释放&#xff08;内存泄漏&#xff09;&#xff0c;如下面代码中注释部分所表明的&#xff1a; int foo() {int *p malloc(4 …

centos下安装配置redis7

1、找个目录下载安装包 sudo wget https://download.redis.io/release/redis-7.0.0.tar.gz 2、将tar.gz包解压至指定目录下 sudo mkdir /home/redis sudo tar -zxvf redis-7.0.0.tar.gz -C /home/redis 3、安装gcc-c yum install gcc-c 4、切换到redis-7.0.0目录下 5、修改…

学习记忆——数学篇——案例——代数——方程——一元二次方程

重点记忆法 a x 2 b x c 0 ax^2bxc0 ax2bxc0 整体可以由&#xff1a; 根&#xff08;多少&#xff0c;正负&#xff0c;区间&#xff09; ⟹ \Longrightarrow ⟹ △ △ △ ⟹ \Longrightarrow ⟹ 求根公式 x 1 , 2 x_{1,2} x1,2​ − b △ 2 a \frac{-b\sqrt{△}}{2a} 2…

LaunchView/启动页 的实现

1. 创建启动画板&#xff0c;LaunchScreen.storyboard 添加组件如图: 2. 项目中设置只支持竖屏&#xff0c;添加启动画板&#xff0c;如图: 3. 创建启动画面动画视图&#xff0c;LaunchView.swift import SwiftUI/// 启动视图 struct LaunchView: View {/// 字符串转换为字符串…

TensorFlow入门(十六、识别模糊手写图片)

TensorFlow在图像识别方面,提供了多个开源的训练数据集,比如CIFAR-10数据集、FASHION MNIST数据集、MNIST数据集。 CIFAR-10数据集有10个种类,由6万个32x32像素的彩色图像组成,每个类有6千个图像。6万个图像包含5万个训练图像和1万个测试图像。 FASHION MNIST数据集由衣服、鞋子…

java - 设计模式 - 状态模式

文章目录 前言java - 设计模式 - 状态模式1. 概述2. 作用3. 示例 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&#xf…

TensorFlow入门(十九、softmax算法处理分类问题)

softmax是什么? Sigmoid、Tanh、ReLU等激活函数,输出值只有两种(0、1,或-1、1或0、x),而实际现实生活中往往需要对某一问题进行多种分类。例如之前识别图片中模糊手写数字的例子,这个时候就需要使用softmax算法。 softmax的算法逻辑 如果判断输入属于某一个类的概率大于属于其…

Android系统定制之监听USB键盘来判断是否弹出软键盘

一.项目背景 在设备上弹出软键盘,会将一大部分UI遮挡起来,造成很多图标无法看到和点击,使用起来不方便,因此通过插入usb键盘输入代替软键盘,但是点击输入框默认会弹出软键盘,因此想要插入USB键盘时,默认关闭软键盘,拔出键盘时再弹出,方便用户使用 二.设计思路 2.1…

JavaScript进阶 第一天笔记

JavaScript 进阶 - 第1天 学习作用域、变量提升、闭包等语言特征&#xff0c;加深对 JavaScript 的理解&#xff0c;掌握变量赋值、函数声明的简洁语法&#xff0c;降低代码的冗余度。 理解作用域对程序执行的影响能够分析程序执行的作用域范围理解闭包本质&#xff0c;利用闭包…

可拓展的低代码全栈框架

尽管现在越来越多的人开始对低代码开发感兴趣&#xff0c;但已有低代码方案的局限性仍然让大家有所保留。其中最常见的担忧莫过于低代码缺乏灵活性以及容易被厂商锁定。 显然这样的担忧是合理的&#xff0c;因为大家都不希望在实现特定功能的时候才发现低代码平台无法支持&…

OpenGL LUT滤镜算法解析

1. 简介 滤镜&#xff1a;一些图像处理软件针对性地提供了一些对传统滤镜效果的模拟功能&#xff0c;使图像达到一种特殊效果。滤镜通常需要同通道、图层、色阶等联合使用&#xff0c;才能使图像取得最佳艺术效果。在软件界面中也直接以“滤镜”&#xff08;Filter&#xff09…

实现一个自己的脚手架教程

前言 脚手架并不实现&#xff0c;难的是最佳实践的整理和沉淀。本文不会涉及到最佳实践方面的内容&#xff0c;只是教会你如何实现一个最基础的脚手架&#xff0c;以此作为展示最佳实践的载体。 如何搭建一个脚手架的工程 如何开发和调试一个脚手架 脚手架中如何接收和处理命…