实用工具---各种工具安装使用

navicat
Navicat Premium
Navicat Premium 12.0.18安装与激活(转)
Navicat Premium 12是一套数据库开发管理工具,支持连接 MySQL、Oracle等多种数据库,可以快速轻松地创建、管理和维护数据库。

2059 - authentication plugin ‘caching_sha2_password’ -navicat连接异常

Navicat premium工具常用快捷键:
1、ctrl+q 打开查询窗口
2、ctrl+/ 注释sql语句
3、ctrl+shift +/ 解除注释
4、ctrl+r 运行查询窗口的sql语句
5、ctrl+shift+r 只运行选中的sql语句
6、F6 打开一个mysql命令行窗口
7、ctrl+l 删除一行
8、ctrl+n 打开一个新的查询窗口
9、ctrl+w 关闭一个查询窗口

navicat for sql server绿色版下载地址。
安装打开软件
新建连接,连接信息如下

xshell

下载破解版,如地址
破解版在安装时,有一个选项“免费、家庭使用”,勾选即可。
或者地址

利用xshell连接服务器

新建连接
填写服务器地址,如下图所示

点击确定后会输入登录名和密码
登录后便可像操作自己的电脑一样操作服务器(在权限范围内)
Linux终端连接Linux服务器
我们经常需要通过类UNIX下连接我们的Linux服务器。比如我的Mac下经常需要连接上Linux服务器。一般系统都提供了ssh支持,可以直接连接:
通过命令:

然后输入root用户的密码就行了。

利用xshell上传文件至服务器及从服务器下载文件
借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器
首先进入到想要上传文件的目录

从Windows上传文件,上传命令为rz;在Linux命令行下输入rz,上传的文件在当前命令行的目录下;

输入rz命令后,会弹出对话框,选择你要上传的文件,选择打开就上传到Linux主机。文件会上传至当前目录,上传完可以使用ls 查看;

下载文件
输入命令:sz filename 之后会有一个选择存放文件的路径

MotionPro客户端
这是一个用于建立VPN通道的客户端,下载网址:
http://106.15.64.216:8080/zh/troubleshooting
正常安装,然后点配置文件里的增加,只要填写基本栏即可,站点名随便起一个,主机即网址,但不是用ip地址给出,而是一个像域名一样的东西。用户名和密码正常填写,并保存密码,方便下次使用。使用时点连接即建立VPN通道,这样就可以使用xshell这类工具登录VPN服务器。建立连接后就不能上网了。
安装过程最好关闭防火墙,如果出现问题,重装后要重启电脑,否则重装的一些配置可能不生效

xftp
与MotionPro配合使用,可用来向将本地文件上传到服务器(服务器很可能不能上网,这样可以通过这种方式来操作)。

代理服务器配置
代理工具服务端安装配置这里不做讲解。
xshell中代理服务器设置可参考之前的部分。
下面介绍浏览器中如何设置代理。
如果使用:foxyproxy插件
首先在附加组件中搜索foxyproxy,如下

然后在搜索结果中点击foxyProxy Standard,在弹出的网页中,点添加选项,安装foxyProxy Standard。
安装完成点选项进行foxyproxy standard代理服务器配置。如下

点edit进行配置

类型选择socks5,名称随便,ip即代理服务器的ip,端口,用户名和密码。
如果使用:switchOmega插件
在switchOmega中新建情景模式,方法如图。

在autoswitch中添加刚刚的代理,如下图所示。配置autoswitch是能够自动在不同代理和正常的网络之间切换。这样即可以上网,也可能访问集群内部的节点。我们可以设置不同的切换规则,如下图所示。

SVN
https://blog.csdn.net/maplejaw_/article/details/52874348

vim编辑器
编辑
进入编辑器后,我们先按"I”,即切换到“插入”状态。就可以通过上下左右移动光标,或空格、退格及回车等进行编辑内容了,和WINDOWS是一样的了

常用剪切(删除)、复制粘贴命令
vim复制只能复制vim里的内容,似乎不能其他地方复制的内容并不能拿到vim里用;粘贴的内容是vim寄存器中的内容,也就是复制后存在寄存器中的内容。提制粘贴不能在‘插入’状态进行,要退出‘插入’状态。
Vim的复制粘贴命令无疑是y (yank),p(paster)
yw:从光标处复制至一个单子/单词的末尾,包括空格
y3l:从光标位置(包括光标位置)向右复制3个字符

p就是在当前光标后粘贴,P就是在当前光标前粘贴;如果之前复制的是一行,那么粘贴是在光标所在行的后面一行粘贴。
另外,说完p,其实还有几个命令有时也是很有用的
默认情况下,p粘贴后光标会在粘贴内容之前;gp,和p的功能基本一致,只是粘贴完,它会把光标移动至粘贴内容之后;gP同理。
:pu[t] ,注意,这个是在命令界面输入的pu/put,它的意思是把x寄存器的内容粘贴到下一行
关于vim和vim寄存器更详细的内容可查看
更详细的快捷键如下:(有时间再和上面的整合起来)
剪切(删除):

复制:

粘贴

跳至行末
锁定到当前行末按end键或者shfit+4,
锁定到最后一行是shift+G

退出
当文本编辑结束之后,通常需要退出编辑器。退出编辑器又分为4种情况:保存退出、正常退出、不保存退出及强制退出。下面简单说下吧!
1、先介绍一下保存退出。当我们编辑或修改好了文件内容
这时,我们要按键盘左上角的"ESC",留意到了没有?左下角的插入状态不见了
然后这时,我们输入“冒号”,即":"(不需双引号),在下方会出现冒号,等待输入命令,如图,我输入的是WQ。功能如下。

W:write,写入

Q:quit,退出

再回车,就保存退出了

其实,保存退出还有二个方法:

A:在最后输入命令时,直接输入"x",也是一样的,即X=WQ。

B:最快捷的方法:按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ,就可以保存退出了,即是按2下大写的Z。
我们可以用查看命令:cat查看其内容:cat /usr/local/con.cfg
2、再说下正常退出,正常退出有个前提条件是:打开的文本文件在内容上没有被改动过。

按了ESC后再输入冒号,在输入命令时,直接输入"q"
3、来看看不保存退出的方法吧,很多时候打开了文件,或者修改了一些地方,才发现错了,非常需要不保存退出。

先按ESC,再输入冒号,在输入命令时,直接输入"q!"
4、强制退出。这个实在是不应该做的操作,因为很操蛋!

先按ESC,再按冒号,在输入命令时,直接输入"!",如图。

但退出后,会有提示!

博客编辑工具markdown
实现markdown的工具
https://www.jianshu.com/p/6ea395a6a35b
markdown离线工具
Haroopad,网址
https://www.jianshu.com/p/1ff6e833e2e6
上文中也有保存成PDF文档的方法,也可以参考下面的方法,两种方法都没验证。
http://blog.csdn.net/autocyz/article/details/50700577

markdown基本模板
https://www.zybuluo.com/mdeditor
依葫芦画瓢,直接套用上述模板可以完成基本的博客和文档编辑。
数学公式的编辑
markdown的语法规则与LaTeX很像,如果有LaTeX基础,可直接按LaTeX规则来,如果出现问题再找资料也可以。
数学公式的基本格式是用一对$或一对$$来表示公式,$符中间的部分为公式具体内容。前者表示公式嵌入在行中,后者表示公式独立成行。_{下标内容}用来表示下标,^{上标内容}用来表示上标,像除法,倒数都有专门的符号来表示,如除法用\frac{分子}{分母}如开根号用\sqrt{具体内容}。希腊字母也有专门的符号,如\alpha。用如下的结构可以实现更复杂的功能:

\begin[ \right] 可以实现大方括号,其他类似;\实现换行;&实现分隔和对齐。
结果如下
KaTeX parse error: No such environment: equation at position 7: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ A=\left[ \begi…
详细的介绍可参考
http://blog.csdn.net/wireless_com/article/details/70596155
基本的符号和希腊字母可参考
http://blog.csdn.net/smstong/article/details/44340637
更详细的符号和规则可参考LaTeX简易文档
http://www.mohu.org/info/lshort-cn.pdf
markdown数学类总结
一个LaTeX公式在线编辑器,不记得公式符号时可以当作反查的工具。
https://private.codecogs.com/latex/eqneditor.php
Markdown 注释一段文字

笑脸表示注释掉不显示,b表示不显示的内容,使用时不显示的内容要缩进。
markdown 导出pdf怎么分页
<div STYLE="page-break-after: always;"></div>
markdown中对齐方式怎样设定?比如怎样将文字右对齐?
Markdown不是排版工具,而是内容写作工具,因此本体其实完全不鸟排版。但是由于markdown需要输出,自带html/css整合。也可以用html里的

标签。
MarkDown: 为字体添加颜色
<font face="黑体">

结果如下:

atom中与pdf相关的插件markdown-preview-enhanced很好用,但由于墙的原因,往往安装不成功。可如下安装。
首先:安装npm及cnpm(Windows)
前往node.js官网下载并安装工具,如果下载的是zip包,直接解压,并放到目标目录,然后将路径添加至环境变量。
安装完毕在命令行输入命令npm -v测试是否安装成功,正确会出现版本号
**然后:**到https://github.com/shd101wyy/markdown-preview-enhanced下载markdown-preview-enhanced,并解压至.atom/packages;进入.atom/packages/markdown-preview-enhanced,运行npm install即安装好markdown-preview-enhanced,详细过程可参考:https://shd101wyy.github.io/markdown-preview-enhanced/#/zh-cn/installation

保存成PDF文件
atom插入图片:将图片拖到makrdown中:
http://m.3gv.ifeng.com/lady/vnzq/news?ch=rj_mr&ou=p%3D3&m=1&aid=127024764
https://atom-china.org/t/atom-markdown/2337
上面的方法没有成功,但是可以在atom中右键,用浏览器打开文件,以火狐为例,然后需要火狐中安装保存pdf的插件,比如“print to pdf”.点击就可以保存成pdf文件.但是会在顶部和脚部打印一些字符,还有一个分布事先不好精确控制。

Atom快捷键

什么是Maven?
如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。
以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。
而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。

进入eclipse官网的下载页面:http://www.eclipse.org/downloads/,如下图所示:

点击图中圈出的部分,可以进入更多版本的下载页面。

根据你的操作系统具体情况选择相应的版本。比如“Eclipse IDE for JavaEE Developers”。下载到本地磁盘即可。把下载完成的eclipse-jee-oxygen-3a-win32-x86_64.zip,解压缩到本地磁盘指定目录下。
进入解压缩后的目录中,双击“eclipse.exe”即可打开Eclipse的工作界面。Eclipse是解压即可运行的。(注:Eclipse正常运行的前提是在系统变量中存在名为“JAVA_HOME”的变量,值为JDK的安装目录)。

Maven的安装和配置
安装
进入Maven官网的下载页面:http://maven.apache.org/download.cgi,如下图所示:
选择镜像
进入maven文件夹,再次进入某个maven文件夹,出现的的网页中会有http://archive.apache.org/dist/maven/binaries/这样的链接,点击进入后,选择相应的版本,如apache-maven-3.0-bin.zip
下载到本地,解压缩到本地磁盘。

配置
进入Maven安装目录下的conf子目录中,打开settings.xml进行配置修改。

修改默认的本地仓库位置
Maven默认的本地仓库位置是当前用户工作目录下的“.m2/repository”,使用过程中这个目录里的文件会比较多,占用空间越来越大。一般建议更换到其它磁盘目录下。如下配置,就把默认的本地仓库更改到D: /.m2/repository这个目录(这个目录结构需要自己创建好)。
<localRepository>d:/.m2/repository</localRepository>
修改默认的中央仓库镜像
Maven默认的中央仓库里的文件不全。所以,都需要自行添加其它的镜像地址。在settings.xml文件中的“”标签里添加如下内容:

http://download.eclipse.org/technology/m2e/releases。输入后,如下图所示:

maven中引入依赖库的方法:

  • 进入网站:http://mvnrepository.com/

  • 然后搜索你要引入的包:

  • 选择需要的版本:
    可以看到如下页面

  • <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.0http://maven.apache.org/maven-v4_0_0.xsd">     
        <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应
        值即为目的默认值。坐标包括group ID,artifact ID和 version。-->    
        <parent>    
            <!--被继承的父项目的构件标识符-->    
            <artifactId/>    
            <!--被继承的父项目的全球唯一标识符-->    
            <groupId/>    
            <!--被继承的父项目的版本-->    
            <version/>    
            <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同
            的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找
            父项目的pom,其次在文件系统的这个位置(relativePath位置),
            然后在本地仓库,最后在远程仓库寻找父项目的pom。-->    
            <relativePath/>    
        </parent>    
        <!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,
        虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者
        其他模型变更的时候,确保稳定性。-->       
        <modelVersion>4.0.0</modelVersion>     
        <!--项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。
        并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的
        相对路径为:/com/mycompany/app-->     
        <groupId>cn.erhuowang</groupId>     
        <!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,
        你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个
        特定的group ID下,artifact ID也必须是唯一的。构件是项目产生
        的或使用的一个东西,Maven为项目产生的构件包括:JARs,源 码,
        二进制发布和WARs等。-->     
        <artifactId>erhuowang-maven2</artifactId>     
        <!--项目产生的构件类型,例如jar、war、ear、pom。插件可以创建
        他们自己的构件类型,所以前面列的不是全部构件类型-->     
        <packaging>war</packaging>     
        <!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号-->     
        <version>1.0-SNAPSHOT</version>     
        <!--项目的名称, Maven产生的文档用-->     
        <name>erhuo-maven</name>     
        <!--项目主页的URL, Maven产生的文档用-->     
        <url>http://erhuowang.cn</url>     
        <!-- 项目的详细描述, Maven 产生的文档用。  当这个元素能够用
        HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含
        HTML标 签), 不鼓励使用纯文本描述。如果你需要修改产生的web
        站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的
        文档。-->     
        <description>A maven project to study maven.</description> 
        
        <!--描述了这个项目构建环境中的前提条件。-->    
        <prerequisites>    
            <!--构建该项目或使用该插件所需要的Maven的最低版本-->    
            <maven/>    
        </prerequisites>    
        <!--项目名称和URL-->     
        <issueManagement>    
            <!--项目名字,-->     
            <system>erhuowang</system>     
            <!--该项目使用的URL-->    
            <url>http://erhuowang.cn</url>     
        </issueManagement>  
        
        <!--项目持续集成信息-->    
        <ciManagement>    
            <!--持续集成系统的名字,例如continuum-->    
            <system/>    
            <!--该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。-->    
            <url/>    
            <!--构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告)-->    
            <notifiers>    
                <!--配置一种方式,当构建中断时,以该方式通知用户/开发者-->    
                <notifier>    
                <!--传送通知的途径-->    
                <type/>    
                <!--发生错误时是否通知-->    
                <sendOnError/>    
                <!--构建失败时是否通知-->    
                <sendOnFailure/>    
                <!--构建成功时是否通知-->    
                <sendOnSuccess/>    
                <!--发生警告时是否通知-->    
                <sendOnWarning/>    
                <!--不赞成使用。通知发送到哪里-->    
                <address/>    
                <!--扩展配置项-->    
                <configuration/>    
                </notifier>    
            </notifiers>    
        </ciManagement>    
        <!--项目创建年份,4位数字。当产生版权信息时需要使用这个值。-->    
        <inceptionYear/>    
        <!--项目相关邮件列表信息-->     
        <mailingLists>    
            <!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。-->     
            <mailingList>     
            <!--邮件的名称-->    
            <name>Demo</name>     
            <!--发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
            <post>chaibozhou@163.com</post>     
            <!--订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
            <subscribe>chaibozhou@163.com</subscribe>     
            <!--取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
            <unsubscribe>chaibozhou@163.com</unsubscribe>     
            <!--你可以浏览邮件信息的URL-->    
            <archive>chaibozhou@163.com</archive>     
            </mailingList>     
        </mailingLists>     
        <!--项目开发者列表-->     
        <developers>     
            <!--某个项目开发者的信息-->    
            <developer>     
                <!--SCM里项目开发者的唯一标识符-->    
                <id>HELLO WORLD</id>     
                <!--项目开发者的全名-->    
                <name>chaimm</name>     
                <!--项目开发者的email-->    
                <email>chaibozhou@163.com</email>     
                <!--项目开发者的主页的URL-->    
                <url/>    
                <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色-->    
                <roles>     
                    <role>Project Manager</role>     
                    <role>Architect</role>     
                </roles>    
                <!--项目开发者所属组织-->    
                <organization>demo</organization>     
                <!--项目开发者所属组织的URL-->    
                <organizationUrl>http://erhuowang.cn</organizationUrl>     
                <!--项目开发者属性,如即时消息如何处理等-->    
                <properties>     
                    <dept>No</dept>     
                </properties>    
                <!--项目开发者所在时区, -11到12范围内的整数。-->    
                <timezone>-5</timezone>     
            </developer>     
        </developers>     
        <!--项目的其他贡献者列表-->     
        <contributors>    
            <!--项目的其他贡献者。参见developers/developer元素-->    
            <contributor>    
            <name/><email/><url/><organization/><organizationUrl/><roles/><timezone/><properties/>    
            </contributor>         
        </contributors>       
        <!--该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。-->     
        <licenses>    
            <!--描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。-->     
            <license>    
            <!--license用于法律上的名称-->    
            <name>Apache 2</name>     
            <!--官方的license正文页面的URL-->    
            <url>http://www.baidu.com/erhuwoang/LICENSE-2.0.txt</url>     
            <!--项目分发的主要方式:    
            repo,可以从Maven库下载    
            manual, 用户必须手动下载和安装依赖-->    
            <distribution>repo</distribution>     
            <!--关于license的补充信息-->    
            <comments>A business-friendly OSS license</comments>     
            </license>     
        </licenses>     
        <!--SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。-->     
        <scm>     
            <!--SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。-->     
            <connection>     
                scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)      
            </connection>     
            <!--给开发者使用的,类似connection元素。即该连接不仅仅只读-->    
            <developerConnection>     
                scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk      
            </developerConnection>    
            <!--当前代码的标签,在开发阶段默认为HEAD-->    
            <tag/>           
            <!--指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。-->     
            <url>http://svn.baidu.com/banseon</url>     
        </scm>     
        <!--描述项目所属组织的各种属性。Maven产生的文档用-->     
        <organization>     
            <!--组织的全名-->    
            <name>demo</name>     
            <!--组织主页的URL-->    
            <url>http://www.erhuowang.cn</url>     
        </organization>
        
        
        <!--构建项目需要的信息-->    
        <build>    
            <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->    
            <sourceDirectory/>    
            <!--该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。-->    
            <scriptSourceDirectory/>    
            <!--该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->    
            <testSourceDirectory/>    
            <!--被编译过的应用程序class文件存放的目录。-->    
            <outputDirectory/>    
            <!--被编译过的测试class文件存放的目录。-->    
            <testOutputDirectory/>    
            <!--使用来自该项目的一系列构建扩展-->    
            <extensions>    
                <!--描述使用到的构建扩展。-->    
                <extension>    
                    <!--构建扩展的groupId-->    
                    <groupId/>    
                    <!--构建扩展的artifactId-->    
                    <artifactId/>    
                    <!--构建扩展的版本-->    
                    <version/>    
                </extension>    
            </extensions>    
            <!--当项目没有规定目标(Maven2 叫做阶段)时的默认值-->    
            <defaultGoal/>    
            <!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。-->    
            <resources>    
                <!--这个元素描述了项目相关或测试相关的所有资源路径-->    
                <resource>    
                    <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例 子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven /messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。-->    
                    <targetPath/>    
                    <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->    
                    <filtering/>    
                    <!--描述存放资源的目录,该路径相对POM路径-->    
                    <directory/>    
                    <!--包含的模式列表,例如**/*.xml.-->    
                    <includes/>    
                    <!--排除的模式列表,例如**/*.xml-->    
                    <excludes/>    
                </resource>    
            </resources>    
            <!--这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。-->    
            <testResources>    
                <!--这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明-->    
                <testResource>    
                    <targetPath/><filtering/><directory/><includes/><excludes/>    
                </testResource>    
            </testResources>    
            <!--构建产生的所有文件存放的目录-->    
            <directory/>    
            <!--产生的构件的文件名,默认值是${artifactId}-${version}。-->    
            <finalName/>    
            <!--当filtering开关打开时,使用到的过滤器属性文件列表-->    
            <filters/>    
            <!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置-->    
            <pluginManagement>    
                <!--使用的插件列表 。-->    
                <plugins>    
                    <!--plugin元素包含描述插件所需要的信息。-->    
                    <plugin>    
                        <!--插件在仓库里的group ID-->    
                        <groupId/>    
                        <!--插件在仓库里的artifact ID-->    
                        <artifactId/>    
                        <!--被使用的插件的版本(或版本范围)-->    
                        <version/>    
                        <!--是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。-->    
                        <extensions/>    
                        <!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->    
                        <executions>    
                            <!--execution元素包含了插件执行需要的信息-->    
                            <execution>    
                                <!--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标-->    
                                <id/>    
                                <!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->    
                                <phase/>    
                                <!--配置的执行目标-->    
                                <goals/>    
                                <!--配置是否被传播到子POM-->    
                                <inherited/>    
                                <!--作为DOM对象的配置-->    
                                <configuration/>    
                            </execution>    
                        </executions>    
                        <!--项目引入插件所需要的额外依赖-->    
                        <dependencies>    
                            <!--参见dependencies/dependency元素-->    
                            <dependency>    
                            ......    
                            </dependency>    
                        </dependencies>         
                        <!--任何配置是否被传播到子项目-->    
                        <inherited/>    
                        <!--作为DOM对象的配置-->    
                        <configuration/>    
                    </plugin>    
                </plugins>    
            </pluginManagement>    
            <!--使用的插件列表-->    
            <plugins>    
                <!--参见build/pluginManagement/plugins/plugin元素-->    
                <plugin>    
                    <groupId/><artifactId/><version/><extensions/>    
                    <executions>    
                        <execution>    
                            <id/><phase/><goals/><inherited/><configuration/>    
                        </execution>    
                    </executions>    
                    <dependencies>    
                        <!--参见dependencies/dependency元素-->    
                        <dependency>    
                        ......    
                        </dependency>    
                        </dependencies>    
                    <goals/><inherited/><configuration/>    
                </plugin>    
            </plugins>    
        </build> 
     
     
        <!--在列的项目构建profile,如果被激活,会修改构建处理-->    
        <profiles>    
            <!--根据环境参数或命令行参数激活某个构建处理-->    
            <profile>    
                <!--构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。-->    
                <id/>    
                <!--自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。-->    
                <activation>    
                    <!--profile默认是否激活的标志-->    
                    <activeByDefault/>    
                    <!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。-->  
                    <jdk/>    
                    <!--当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。-->    
                    <os>    
                        <!--激活profile的操作系统的名字-->    
                        <name>Windows XP</name>    
                        <!--激活profile的操作系统所属家族(如 'windows')-->    
                        <family>Windows</family>    
                        <!--激活profile的操作系统体系结构 -->    
                        <arch>x86</arch>    
                        <!--激活profile的操作系统版本-->    
                        <version>5.1.2600</version>    
                    </os>    
                    <!--如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值    
                    字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段-->    
                    <property>    
                        <!--激活profile的属性的名称-->    
                        <name>mavenVersion</name>    
                        <!--激活profile的属性的值-->    
                        <value>2.0.3</value>    
                    </property>    
                    <!--提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活    
                    profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。-->    
                    <file>    
                        <!--如果指定的文件存在,则激活profile。-->    
                        <exists>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/</exists>    
                        <!--如果指定的文件不存在,则激活profile。-->    
                        <missing>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/</missing>    
                    </file>    
                </activation>    
                <!--构建项目所需要的信息。参见build元素-->    
                <build>    
                    <defaultGoal/>    
                    <resources>    
                        <resource>    
                            <targetPath/><filtering/><directory/><includes/><excludes/>    
                        </resource>    
                    </resources>    
                    <testResources>    
                        <testResource>    
                            <targetPath/><filtering/><directory/><includes/><excludes/>    
                        </testResource>    
                    </testResources>    
                    <directory/><finalName/><filters/>    
                    <pluginManagement>    
                        <plugins>    
                            <!--参见build/pluginManagement/plugins/plugin元素-->    
                            <plugin>    
                                <groupId/><artifactId/><version/><extensions/>    
                                <executions>    
                                    <execution>    
                                        <id/><phase/><goals/><inherited/><configuration/>    
                                    </execution>    
                                </executions>    
                                <dependencies>    
                                    <!--参见dependencies/dependency元素-->    
                                    <dependency>    
                                    ......    
                                    </dependency>    
                                </dependencies>    
                                <goals/><inherited/><configuration/>    
                            </plugin>    
                        </plugins>    
                    </pluginManagement>    
                    <plugins>    
                        <!--参见build/pluginManagement/plugins/plugin元素-->    
                        <plugin>    
                            <groupId/><artifactId/><version/><extensions/>    
                            <executions>    
                                <execution>    
                                    <id/><phase/><goals/><inherited/><configuration/>    
                                </execution>    
                            </executions>    
                            <dependencies>    
                                <!--参见dependencies/dependency元素-->    
                                <dependency>    
                                ......    
                                </dependency>    
                            </dependencies>    
                            <goals/><inherited/><configuration/>    
                        </plugin>    
                    </plugins>    
                </build>    
                <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->    
                <modules/>    
                <!--发现依赖和扩展的远程仓库列表。-->    
                <repositories>    
                    <!--参见repositories/repository元素-->    
                    <repository>    
                        <releases>    
                            <enabled/><updatePolicy/><checksumPolicy/>    
                        </releases>    
                        <snapshots>    
                            <enabled/><updatePolicy/><checksumPolicy/>    
                        </snapshots>    
                        <id/><name/><url/><layout/>    
                    </repository>    
                </repositories>    
                <!--发现插件的远程仓库列表,这些插件用于构建和报表-->    
                <pluginRepositories>    
                    <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素-->        
                    <pluginRepository>    
                        <releases>    
                            <enabled/><updatePolicy/><checksumPolicy/>    
                        </releases>    
                        <snapshots>    
                            <enabled/><updatePolicy/><checksumPolicy/>    
                        </snapshots>    
                        <id/><name/><url/><layout/>    
                    </pluginRepository>    
                </pluginRepositories>    
                <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。-->    
                <dependencies>    
                    <!--参见dependencies/dependency元素-->    
                    <dependency>    
                    ......    
                    </dependency>    
                </dependencies>    
                <!--不赞成使用. 现在Maven忽略该元素.-->    
                <reports/>       
                <!--该元素包括使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素-->    
                <reporting>    
                ......    
                </reporting>    
                <!--参见dependencyManagement元素-->    
                <dependencyManagement>    
                    <dependencies>    
                        <!--参见dependencies/dependency元素-->    
                        <dependency>    
                        ......    
                        </dependency>    
                    </dependencies>    
                </dependencyManagement>    
                <!--参见distributionManagement元素-->    
                <distributionManagement>    
                ......    
                </distributionManagement>    
                <!--参见properties元素-->    
                <properties/>    
            </profile>    
        </profiles>    
        <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径-->    
        <modules/>    
        <!--发现依赖和扩展的远程仓库列表。-->     
        <repositories>     
            <!--包含需要连接到远程仓库的信息-->    
            <repository>    
                <!--如何处理远程仓库里发布版本的下载-->    
                <releases>    
                    <!--true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->    
                    <enabled/>    
                    <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。-->    
                    <updatePolicy/>    
                    <!--当Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)。-->    
                    <checksumPolicy/>    
                </releases>    
                <!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的 策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->    
                <snapshots>    
                    <enabled/><updatePolicy/><checksumPolicy/>    
                </snapshots>    
                <!--远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库-->    
                <id>banseon-repository-proxy</id>     
                <!--远程仓库名称-->    
                <name>banseon-repository-proxy</name>     
                <!--远程仓库URL,按protocol://hostname/path形式-->    
                <url>http://192.168.1.169:9999/repository/</url>     
                <!-- 用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然 而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。-->    
                <layout>default</layout>               
            </repository>     
        </repositories>    
        <!--发现插件的远程仓库列表,这些插件用于构建和报表-->    
        <pluginRepositories>    
            <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素-->    
            <pluginRepository>    
            ......    
            </pluginRepository>    
        </pluginRepositories>    

        <!--该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。-->     
        <dependencies>     
            <dependency>    
                <!--依赖的group ID-->    
                <groupId>org.apache.maven</groupId>     
                <!--依赖的artifact ID-->    
                <artifactId>maven-artifact</artifactId>     
                <!--依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。-->    
                <version>3.8.1</version>     
                <!-- 依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应, 尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 true,就可以在 plugin里定义新的类型。所以前面的类型的例子不完整。-->    
                <type>jar</type>    
                <!-- 依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成 JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。-->    
                <classifier></classifier>    
                <!--依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。    
                    - compile :默认范围,用于编译      
                    - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath      
                    - runtime: 在执行时需要使用      
                    - test:    用于test任务时使用      
                    - system: 需要外在提供相应的元素。通过systemPath来取得      
                    - systemPath: 仅用于范围为system。提供相应的路径      
                    - optional:   当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用-->     
                <scope>test</scope>       
                <!--仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。-->    
                <systemPath></systemPath>     
                <!--当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题-->    
                <exclusions>    
                    <exclusion>     
                        <artifactId>spring-core</artifactId>     
                        <groupId>org.springframework</groupId>     
                    </exclusion>     
                </exclusions>       
                <!--可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。-->     
                <optional>true</optional>    
            </dependency>    
        </dependencies>    
        <!--不赞成使用. 现在Maven忽略该元素.-->    
        <reports></reports>    
        <!--该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。-->    
        <reporting>    
            <!--true,则,网站不包括默认的报表。这包括“项目信息”菜单中的报表。-->    
            <excludeDefaults/>    
            <!--所有产生的报表存放到哪里。默认值是${project.build.directory}/site。-->    
            <outputDirectory/>    
            <!--使用的报表插件和他们的配置。-->    
            <plugins>    
                <!--plugin元素包含描述报表插件需要的信息-->    
                <plugin>    
                    <!--报表插件在仓库里的group ID-->    
                    <groupId/>    
                    <!--报表插件在仓库里的artifact ID-->    
                    <artifactId/>    
                    <!--被使用的报表插件的版本(或版本范围)-->    
                    <version/>    
                    <!--任何配置是否被传播到子项目-->    
                    <inherited/>    
                    <!--报表插件的配置-->    
                    <configuration/>    
                    <!--一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标-->    
                    <reportSets>    
                        <!--表示报表的一个集合,以及产生该集合的配置-->    
                        <reportSet>    
                            <!--报表集合的唯一标识符,POM继承时用到-->    
                            <id/>    
                            <!--产生报表集合时,被使用的报表的配置-->    
                            <configuration/>    
                            <!--配置是否被继承到子POMs-->    
                            <inherited/>    
                            <!--这个集合里使用到哪些报表-->    
                            <reports/>    
                        </reportSet>    
                    </reportSets>    
                </plugin>    
            </plugins>    
        </reporting>    
        <!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和 artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID 匹配到这里的依赖,并使用这里的依赖信息。-->    
        <dependencyManagement>    
            <dependencies>    
                <!--参见dependencies/dependency元素-->    
                <dependency>    
                ......    
                </dependency>    
            </dependencies>    
        </dependencyManagement>       
        <!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。-->     
        <distributionManagement>    
            <!--部署项目产生的构件到远程仓库需要的信息-->    
            <repository>    
                <!--是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素-->    
                <uniqueVersion/>    
                <id>banseon-maven2</id>     
                <name>banseon maven2</name>     
                <url>file://${basedir}/target/deploy</url>     
                <layout/>    
            </repository>    
            <!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素-->     
            <snapshotRepository>    
                <uniqueVersion/>    
                <id>banseon-maven2</id>    
                <name>Banseon-maven2 Snapshot Repository</name>    
                <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>     
                <layout/>    
            </snapshotRepository>    
            <!--部署项目的网站需要的信息-->     
            <site>    
                <!--部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置-->     
                <id>banseon-site</id>     
                <!--部署位置的名称-->    
                <name>business api website</name>     
                <!--部署位置的URL,按protocol://hostname/path形式-->    
                <url>     
                    scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web      
                </url>     
            </site>    
            <!--项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。-->    
            <downloadUrl/>    
            <!--如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。-->    
            <relocation>    
                <!--构件新的group ID-->    
                <groupId/>    
                <!--构件新的artifact ID-->    
                <artifactId/>    
                <!--构件新的版本号-->    
                <version/>    
                <!--显示给用户的,关于移动的额外信息,例如原因。-->    
                <message/>    
            </relocation>    
            <!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从 Maven 1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部 署),verified(被核实时正确的和最终的)。-->    
            <status/>           
        </distributionManagement>    
        <!--以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<    name>value</name>。-->    
        <properties/>    
    </project> 

  • pdf在线分割
    http://www.pdfdo.com/pdf-split.aspx

    程序员在线工具箱
    https://tool.lu/

    在线图片识别
    https://zhcn.109876543210.com/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值