整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

前端爬坑之路-Visual Studio Code以

前端爬坑之路-Visual Studio Code以及相关插件安装

所谓工欲善其事,必先利其器。对于前端开发者来说,选择一款趁手的开发工具,不仅可以提高开发效率,甚至可以达到事半功倍的效果。目前,市面上前端开发工具非常多,比如VS Code、Web Storm、Atom、Hbuilder、SublimeText3,其中VS Code与Web Storm是其中个人体验比较好的两款。Web Storm是jetbrains公司旗下一款JavaScript 开发工具,即插即用,不需要过多的配置,另外Web Storm的智能提示堪称神级,很值得去用。但是VS Code相对于Web Strom最大的优势在于免费,而且VS Code占用内存小,插件很多,可以通过安装插件,打造一个适合自己的开发环境,VS Code其实就是一个披着编辑器外衣的IDE。由于Web Storm更像一个生产工具,因此,个人比较推荐VS Code,可以在学习阶段增强对前端的语法以及相关内容的记忆,增加前端开发的熟练度。其中Visual Studio Code搭建前端开发环境步骤如下:

第一步,下载Visual Studio Code,通过网站搜索Visual Studio Code进入相应的下载页面或者直接打开https://code.visualstudio.com/Download/进入,然后选择对应电脑操作系统的版本进行下载。(注:Windows有两个版本,一个是User Installer,一个是System Iinstaller,前者是安装在当前电脑登录账户目录下,而后者安装在非用户目录下,个人建议选择后者,因为不会因为用其它账户登录系统而无法使用。)

Visual Studio Code下载页面

第二步,安装Visual Studio Code,Mac版下载后可直接打开使用将下载的文件拖拽至启动台,之后会在启动台看到Visual Studio Code的图标,Windows版本直接点击下一步,其中可以根据需要选择相应的安装目录即可。

Windows版本选择相应安装目录

第三步,打开Visual Studio Code,安装相应插件,安装完成后需要重启使插件生效。由于目前只用于前端开发,个人建议,只需安装Live Server、Prettier 、vscode-icons、HTML Snippets、Auto Close Tag、IntelliSense for CSS class names in HTML、Atuo Rename Tag

Live Server:实时加载功能的服务器,保存代码后可以在网页中实时看到效果;

Prettier :代码格式化;

vscode-icons:文件显示图标;

HTML Snippets:自动填充html标签;

Auto Close Tag:自动添加闭合/结束标签;

Atuo Rename Tag:修改 html 标签,自动帮你完成尾部闭合标签的同步修改

IntelliSense for CSS class names in HTML:据所输入的class所在或link元素引入的外部文件中找到相应的类名称并提示给html。

插件安装界面

第四步,对VS Code进行相关配置,此处只修改相应的字体大小、界面主题以及文件图标。

1、进入配置界面

进入Visual Studio Code设置界面

2、设置字体大小

设置字体大小

3、设置VS Code主题

设置Visual Studio Code界面主题

4、设置文件图标显示

设置Visual Studio Code文件图标样式

第五步、创建第一个页面并通过Live Server看页面效果

1、创建页面并打开页面

点击file选择new file,然后保存并命名为demo.html,在VS Code的编辑界面输入感叹号(英文输入法状态下)提示按回车即会生成一个完整的html页面代码,之后保存并单击鼠标右键选择Open with Live Server,即会打开浏览器看到页面效果(建议安装Chrome浏览器,打开时选择Chrome)。

Visual Studio Code自动补全的HTML代码

2、代码格式化,Prettier的使用(快捷键:shift+alt+f)

Prettier代码格式化前

Prettier代码格式化后

前端小白,仅以此作为学习笔记以及分享,如有需改进或者不妥之处,请多多指教。

1+0.01=1.01

1-0.01=0.99

种常用的maven打包插件总结:

一、自带插件:

maven自带的核心插件为Build plugins和Reporting plugins。

mvn compile编译源码实际上就利用到了maven-compiler-plugin,其他phase也类似用到了相应的插件

关于maven自带的核心插件见:http://maven.apache.org/plugins/index.html

核心插件 maven-compiler-plugin

参考地址 http://maven.apache.org/plugins/maven-compiler-plugin/

从3.0版本开始,编译工具默认使用的是 javax.tools.JavaCompiler(从JDK 1.6开始) 如果要强制使用javac来进行编译,需要添加参数forceJavacCompilerUse

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.6.1</version>

<configuration>

<encoding>utf-8</encoding>

<source>1.7</source>

<!-- 默认1.5 -->

<target>1.7</target>

<!-- 默认1.5 -->

<compilerArgs>

<!-- 传递编译参数 -->

<arg>-verbose</arg>

<arg>-Xlint:all,-options,-path</arg>

</compilerArgs>

<fork>true</fork>

<!-- 配置编译内存参数 -->

<meminitial>128m</meminitial>

<!-- 初始内存 -->

<maxmem>512m</maxmem>

<!-- 最大内存 -->

<executable>${JAVA_1_4_HOME}/bin/javac</executable>

<!-- 指定编译的java库 -->

<compilerVersion>1.3</compilerVersion>

<!-- 指定编译版本 -->

</configuration>

</plugin>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

配置source 和target时,也可以这样配置 实际上这是javac指令可以接受的参数

<properties>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

</properties>

  • 1
  • 2
  • 3
  • 4

二、直接打成可执行的jar包。

这种打包方式比较粗暴,将应用的依赖包和程序包打成一个全量包。包会相对较大,但是好处也很明显,不用管依赖包。所以这种方式只适用于比较小的项目,比如搭建微服务这种方式可以适用。

附上关键的服务器执行代码

java -jar dataCleaner.jar 1>/home/credit/app/tracefile 2>/home/credit/app/errorfile &

说明: 最后面的& 表明后台执行。

1> 将运行日志输出到tracefile

2> 将错误日志输出到errorfile

具体参数很多,参考官网页面

官网页面 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

<plugin>

<artifactId>maven-assembly-plugin</artifactId>

<configuration>

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

</configuration>

</plugin>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

还一种方式,可以使用spring-boot的打包插件进行打包。一般是跟spring boot一起使用的,但是也可以单独利用出来打成可执行的整包。

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<version>1.3.5.RELEASE</version>

<configuration>

<mainClass>com.ftoul.dataCleaner.DataCleanServiceProvider</mainClass>

<layout>ZIP</layout>

</configuration>

<executions>

<execution>

<goals>

<goal>repackage</goal>

</goals>

</execution>

</executions>

</plugin>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

补充一下,还有一个shade插件也是比较常用的打fat jar包的方式

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-shade-plugin</artifactId>

<version>3.0.0</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<transformers>

<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

<manifestEntries>

<Main-Class>org.sonatype.haven.ExodusCli</Main-Class>

<Build-Number>123</Build-Number>

</manifestEntries>

</transformer>

</transformers>

</configuration>

</execution>

</executions>

</plugin>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

三 将依赖包与代码包分开打包

这种打包方式更普遍适用。毕竟依赖的jar包在项目发展中变动会相对较小。一般可配合maven-dependency-plugin 和 maven-jar-plugin 两个插件打包。前者负责依赖包,后者负责程序包。

另外,附上服务器可用的执行脚本。

more runapp.sh

#!/bin/sh

#执行jar包

RUN_LIBS=""

#依赖jar包

SUPPORT_LIBS=""

RUN_LIB_PATH="$HOME/app/lib"

SUPPORT_LIB_PATH="$HOME/app/support"

#加载程序包

for i in ${RUN_LIB_PATH}/* ; do

RUN_LIBS=${RUN_LIBS}:$i

done

#加载依赖包

for i in ${SUPPORT_LIB_PATH}/* ; do

SUPPORT_LIBS=${SUPPORT_LIBS}:$i

done

#整合classpath

CLASSPATH=${RUN_LIBS}:${SUPPORT_LIBS}

export CLASSPATH

#调用java指令执行。-D输入参数 java中可以用 System.getProperties读取。同时指定执行入口类 SpringBootApplication 这是一个典型的Springboot的执行方式。

java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=27899,suspend=n -cp $CLASSPATH -Dspring.profiles.active=prod com.app.SpringBootApplication -D

user.timezone=GMT+08 1>/home/credit/ftoulcloud/bin/tracefile 2>/home/credit/ftoulcloud/bin/errorfile &

echo Start App Success!

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

assembly官网的其他几个示例使用项目的依赖包进行打包

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-dependency-plugin</artifactId>

<version>3.0.0</version>

<executions>

<execution>

<id>src-dependencies</id>

<phase>package</phase>

<goals>

<!-- use copy-dependencies instead if you don't want to explode the sources -->

<goal>unpack-dependencies</goal>

</goals>

<configuration>

<classifier>sources</classifier>

<failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>

<outputDirectory>${project.build.directory}/sources</outputDirectory>

</configuration>

</execution>

</executions>

</plugin>

</plugins>

</build>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

将指定的包打入依赖包

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-dependency-plugin</artifactId>

<version>3.0.0</version>

<executions>

<execution>

<id>copy</id>

<phase>package</phase>

<goals>

<goal>copy</goal>

</goals>

</execution>

</executions>

<configuration>

<artifactItems>

<artifactItem>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<type>jar</type>

<overWrite>false</overWrite>

<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>

<destFileName>optional-new-name.jar</destFileName>

</artifactItem>

</artifactItems>

<outputDirectory>${project.build.directory}/wars</outputDirectory>

<overWriteReleases>false</overWriteReleases>

<overWriteSnapshots>true</overWriteSnapshots>

</configuration>

</plugin>

</plugins>

</build>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

一个可用的示例

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-dependency-plugin</artifactId>

<!-- <version>2.10</version> -->

<executions>

<execution>

<id>copy-dependencies</id>

<phase>package</phase>

<goals>

<goal>copy-dependencies</goal>

</goals>

<configuration>

<outputDirectory>export</outputDirectory> <!-- 将依赖包放入export文件夹 -->

<excludeTransitive>false</excludeTransitive>

<stripVersion>true</stripVersion>

</configuration>

</execution>

</executions>

</plugin>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

四、maven-jar-plugin 将指定的一些文件打包成jar包

这个比较简单。就将指定的文件打成jar包

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-jar-plugin</artifactId>

<version>3.0.2</version>

<configuration> <!-- manifest配置信息 主要是可以配置主执行类。有主执行类,可以用java-jar直接执行。没有的话就需要指定执行类 -->

<archive>

<manifest>

<addClasspath>true</addClasspath>

<classpathPrefix>support/</classpathPrefix>

<mainClass>com.myapp.MyAppApplication</mainClass>

<!-- 可以按上面的方式自己配置,也可以指定MF文件打包。 -->

<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>

</manifest>

</archive>

</configuration>

<executions>

<execution>

<id>myapp1-jar</id>

<phase>package</phase>

<goals>

<goal>jar</goal>

</goals>

<configuration>

<classifier>myapp</classifier>

<includes>

<include>com/myapp/**</include>

<include>mybatis/**</include>

<include>templates/**</include>

<include>*.properties</include>

<include>dubbo.xml</include>

</includes>

</configuration>

</execution>

<execution>

<id>myapp2-jar</id>

<phase>package</phase>

<goals>

<goal>jar</goal>

</goals>

<configuration>

<classifier>myapp2</classifier>

<includes>

<include>com/myapp2/crawler/*</include>

<include>com/myapp2/crawler/*</include>

<include>com/myapp2/utils/**</include>

<include>log4j.properties</include>

</includes>

</configuration>

</execution>

</executions>

</plugin>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

五、其他丰富的三方插件

PMD打包插件。 PMD一个很好用的静态代码检查插件, eclipse可以直接安装插件使用

生成PMD报告

http://maven.apache.org/plugins/maven-pmd-plugin/

只能用于3.3.3以后的maven版本

分析JSP页面

<reporting>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-pmd-plugin</artifactId>

<version>3.8</version>

<configuration>

<language>jsp</language>

<rulesets>

<ruleset>jsp-basic</ruleset>

</rulesets>

<includes>

<include>**/*.jsp</include>

</includes>

<compileSourceRoots>

<compileSourceRoot>${basedir}/src/main/webapp</compileSourceRoot>

</compileSourceRoots>

</configuration>

</plugin>

</plugins>

</reporting>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

分析JS

<reporting>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-pmd-plugin</artifactId>

<version>3.8</version>

<configuration>

<language>javascript</language>

<rulesets>

<ruleset>ecmascript-basic</ruleset>

<ruleset>ecmascript-braces</ruleset>

<ruleset>ecmascript-unnecessary</ruleset>

</rulesets>

<includes>

<include>**/*.js</include>

</includes>

<compileSourceRoots>

<compileSourceRoot>${basedir}/src/main/javascript</compileSourceRoot>

</compileSourceRoots>

</configuration>

</plugin>

</plugins>

</reporting>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

代码非法检查

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-pmd-plugin</artifactId>

<version>3.8</version>

<executions>

<execution>

<goals>

<goal>check</goal>

<goal>cpd-check</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

制定JDK

<reporting>

<plugins>

<plugin>

<artifactId>maven-pmd-plugin</artifactId>

<version>3.8</version>

<configuration>

<targetJdk>1.6</targetJdk>

</configuration>

</plugin>

</plugins>

</reporting>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

删除PMD报告

<reporting>

<plugins>

<plugin>

<artifactId>maven-pmd-plugin</artifactId>

<version>3.8</version>

<reportSets>

<reportSet>

<reports>

<report>pmd</report>

<report>cpd</report>

</reports>

</reportSet>

</reportSets>

</plugin>

</plugins>

</reporting>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

没事可以经常去官网转转,时不时有些新的打包插件出来。 比如PDF插件 GPG签名插件 TOMCAT插件 JETTY插件 等。 好多好多。用时慢慢去了解。

. 介绍

刚开始接触Jenkins,大部分都会从插件开始吧。我也是一样。被各种插件弄的懵逼。

本篇内容只是简单介绍各种插件的作用。

2. 常见插件

Jenkins 在初始化的时候,会推荐一些插件让我们进行安装。这些插件都是Jenkins社区推荐的,大部分人都会使用到的插件。

还有一些插件,是我们自己在实际使用过程中,根据公司需求和个人需求进行安装的一些插件。

下面也是根据这两种进行一个介绍。如果,工作使用的插件使用的频率比较大,也可能会被Jenkins社区采纳进行推荐。

有些差距名称后面有Plugin ,有些插件名称后面没有Plugin。 大家自己进行评判哦。

下面配置的目录,我是按照插件完整名称定义的。

2.1 Jenkins推荐插件

Jenkins自带推荐安装的一些插件例如Git,Folders,BuildTimeout,Credentials Binding,

Timestamper,Workspace Cleanup,Ant,Gradle,Pipeline,GitHub Branch Source等等

这些插件可以说,是我们的Jenkins必备的插件了。在我们初始化的时候,就应该安装好,如果没有安装好。就只能自己通过系统管理中进行安装了。下面简单介绍介绍上面的一些插件吧。

Folders Plugin

当前最新版本: 6.773.vd2dcc704ee7e。 (更新频率比较高)

插件地址:https://plugins.jenkins.io/cloudbees-folder/

作用:该插件允许用户创建“文件夹”来组织任务。用户可以定义自定义分类法(例如,按项目类型、组织类型)。文件夹是可嵌套的,您可以在文件夹中定义视图。

安装了该插件之后,我们在新建任务(新建 Item)时,可以新建任务类型中会多一个文件夹类型的选项。

OWASP Markup Formatter Plugin

当前版本:2.7

插件地址:https://plugins.jenkins.io/antisamy-markup-formatter/

作用:该插件允许使用安全的HTML子集格式化Jenkins中的作业、构建、视图等描述。该插件使用OWASP Java HTML Sanitizer和允许用户提交文本中的有限HTML标记的基本策略来清理HTML源。

简单描述就是,用户如果在构建过程中输入的文本为HTML,这个插件就可以限制这些输入文本中的HTML标签。避免该标准造成编译问题。

Build Timeout

当前版本:1.24

插件地址:https://plugins.jenkins.io/build-timeout/

作用:该插件允许您在构建时间过长时自动终止构建。此插件不适用于管道(Pipelines),管道有自己的工作流超时步骤。

我们可以在Build Steps中添加 Run with timeout 运行构建超时,配置超时时间,以及超时之后的执行任务等。

可以调用DingTalk发送超时通知。

Credentials Binding Plugin

当前版本:523.vd859a_4b_122e6

插件地址:https://plugins.jenkins.io/credentials-binding/

作用:该插件允许将凭据绑定到环境变量,以便在其他构建步骤中使用。该插件提供了一种简单的方法,可以打包所有作业的秘密文件和密码,并在构建过程中使用单个环境变量访问它们。

我们在系统管理中添加的凭证控制等等,都是可以说基于该插件配置的。这个插件算是一个底层插件了。

Timestamper

当前版本: 1.20

插件地址:https://plugins.jenkins.io/timestamper/

作用:该插件允许设置任务log时间戳,将时间戳添加到Jenkins作业的控制台输出中。

在构建环境中勾选:Add timestamps to the Console Output 就可以让我们的控制台输出log中每条记录配置上时间戳了。如果时间戳显示的日期格式不符合需求,我们可以在系统管理中的Configure System(系统配置)中找到Timestamper 然后定义我们自己的时间戳显示效果,也可以定义Pipeline中的显示效果。

Workspace Cleanup Plugin

当前版本:0.43

插件地址:https://plugins.jenkins.io/ws-cleanup/

作用:该插件用来清理工作空间。

我们在构建过程中jenkins会给我们生成一个workspace的工作空间,里面会存储我们在构造过程中产生的各种文档(特别是Git拉取到的代码)。该插件就允许我们在每次构造前,将该工作空间清理干净。(PS:我们每次构造之后的构建结果,不会存储在该工作空间中,清理不会造成以前构造的结果被删除)。

在构建环境中勾选:Delete workspace before build starts 就可以在每次构建时清理了。

Ant Plugin

当前版本:481.v7b_09e538fcca

插件地址:https://plugins.jenkins.io/ant/

作用:该插件用来给Jenkins添加Apache Ant的支持。

我们项目编译构造过程中如果要使用到Ant的支持,那么这个插件就是一个核心插件了。有了它Jenkins 才能支持Ant。下面的Gradle和它类似。

Gradle Plugin

当前版本:2.0

插件地址:https://plugins.jenkins.io/gradle/

作用:该插件用来给Jenkins添加Gradle的支持。

我们在编译Android项目的时候,就是通过Gradle进行自动编译构建的。它和Ant 和Maven是一样的。如果要编译Android项目。那么该插件就是必须的。

Pipeline

当前版本:590.v6a_d052e5a_a_b_5

插件地址:https://plugins.jenkins.io/workflow-aggregator/

作用:该插件给Jenkins提供Pipeline功能。这个插件和它依赖的其他插件,整体组成了Jenkins 2.0的Pipeline功能。

例如:

Pipeline Graph Analysis Plugin : 提供 REST API的pipeline访问和管理功能。

Pipeline: API:定义管道API的插件。

Pipeline: Basic Steps:添加管道步骤“build”以触发其他作业的生成。

Pipeline: Declarative:一个顽固的声明性的管道。

等等,配套的插件。这里就不扩展了。

GitHub Branch Source Plugin

当前版本:1695.v88de84e9f6b_9

插件地址:https://plugins.jenkins.io/github-branch-source/

作用:该插件允许从一个或多个GitHub用户或组织创建基于存储库结构的新项目。

要使用该插件,我们在创建item的时候,类型选择构建一个多配置项目(Multi-configuration project)或者多管道项目(Multibranch Pipeline)等。

Git

当前版本:4.12.1

插件地址:https://plugins.jenkins.io/git/

作用:该插件为Jenkins项目提供了基本的git操作。它可以轮询、提取、签出、分支、列表、合并、标记和推送存储库。

我们其实安装该插件,就可以实现Git项目的代码拉取了。

这个是最基本核心的插件。后面Git client,Git server Plugin, GitHub plugin ,GitLab Plugin都是针对具体功能需求,减少操作步骤而封装的各种专用场景下的插件。

SSH Build Agents plugin

当前版本:2.854.v7fd446b_337c9

插件地址:https://plugins.jenkins.io/ssh-slaves/

作用:该插件为Jenkins项目提供通过SSH启动代理的方法。

Matrix Authorization Strategy Plugin

当前版本:3.1.5

插件地址:https://plugins.jenkins.io/matrix-auth/

作用:该插件在Jenkins中实现细粒度访问控制。

我们可以用这个插件实现各种安全选项控制,给与不同用户访问权限,已经编辑和禁用相关安全工配置选项。

这个插件是给管理员用的。普通使用者使用不到。

PAM Authentication plugin

当前版本:1.10

插件地址:https://plugins.jenkins.io/pam-auth/

作用:该插件在Jenkins中实现了Unix可插拔身份验证模块(PAM)的支持。

PAM的完整单词为:Pluggable Authentication Module

LDAP Plugin

当前版本:2.12

插件地址:https://plugins.jenkins.io/ldap/

作用:该插件提供了另一种使用LDAP验证用户的方法。它可以与Active Directory或OpenLDAP等LDAP服务器一起使用。

我们如果用不到的话,是可以禁用该插件的。

LDAP指轻量目录访问协议,完整单词为:Lightweight Directory Access Protocol

Email Extension Plugin

当前版本:2.92

插件地址:https://plugins.jenkins.io/email-ext/

作用:该插件允许您配置电子邮件通知的各个方面。您可以自定义电子邮件的发送时间、收件人以及电子邮件内容。

我们在Jenkins中实现的各种邮件通知功能,通常就是由该插件实现支持的。

Mailer Plugin

当前版本:438.v02c7f0a_12fa_4

插件地址:https://plugins.jenkins.io/mailer/

作用:此插件允许您为生成结果配置电子邮件通知。

Mailer Plugin是一个提供了基本邮件通知的插件,但是该插件实现的功能比较少和简单。例如我们想自定义邮件标题内容等。那么就可以使用Email Extension Plugin插件了。Mailer Plugin这个是Jenkins系统插件。

Localization: Chinese (Simplified)

当前版本:1.0.24

插件地址:https://plugins.jenkins.io/localization-zh-cn/

作用:该插件为Jenkins 提供了简体中文语言包。

我们Jenkins中的各种配置项,有些是中文有些是英文,那就是这个插件包在生效。它对部分功能实现了翻译,部分功能没有翻译造成的。我们如果想使用纯英文版本可以关闭该插件。

推荐插件,到这里就介绍差不多了。我们如果不明白插件的功能可以通过插件地址,去看详细的介绍,唯一不美好的地方在于,详细介绍中都是英文的。

2.2 工作使用推荐插件

把系统推荐的插件介绍完毕后,下面介绍一些工作中用到的。或者帮助我们提升Jenkins理解的插件。

这些插件就属于仁者见仁了。

Environment Injector Plugin

当前版本:2.881.v37c62073ff97

插件地址:https://plugins.jenkins.io/envinject/

作用:可以在编译之后列出构造过程中的环境变量,包括参数化构造的环境变量。

同时,也可以为任务设置自定义环境变量。例如可以将密码安全的注入到构造过程中。

Build Environment Plugin

当前版本:1.7

插件地址:https://plugins.jenkins.io/build-environment

作用:这个插件显示了关于构建环境的信息,并提供了比较两个构建环境的选项。它可以将我们整个构建过程中的全局变量全部展示出来。相较于Environment Injector Plugin 插件,它能够显示更多的变量。

我们如果在使用Groovy脚本的时候,不知道有哪些全局属性。或者我们构造过程中用的很多插件,但是不知道那些插件有没有暴露一些全局参数。都可以用这个接口进行测试和清理。

同时它还能将参数数据进行一个记录。跟随每次构建的输出结果进行展示。

GitLab Plugin

当前版本:1.5.36

插件地址:https://plugins.jenkins.io/gitlab-plugin/

作用:该插件允许GitLab在提交代码或打开/更新合并请求时触发Jenkins中的构建。它还可以将构建状态发送回GitLab。

我们如果项目是通过GitLab进行控制的。那么可以用这个插件来实现,git提交后自动构建。

同时也可以配置GitLab的相关认证。

Upload to pgyer

当前版本:2.1

插件地址:https://plugins.jenkins.io/upload-pgyer/

作用:可以将我们编译后的Android应用或者ios应用上传到蒲公英平台。接口上传完毕后,会自动返回相关下载链接之类的。

Groovy Postbuild

当前版本:2.5

插件地址:https://plugins.jenkins.io/groovy-postbuild/

作用:该插件将会在Jenkins JVM中执行一个groovy脚本。我们可以通过Groovy脚本执行一些事务,并修改构建结果。

例如我在这篇文章中https://zinyan.com/?p=383 通过groovy脚本实现了钉钉消息的发送,就是一个http请求过程的触发。

如果我们使用Pipeline插件,可以不用额外安装Groovy Postbuild因为有一个Pipeline: Groovy

build user vars plugin

当前版本:1.9

插件地址:https://plugins.jenkins.io/build-user-vars-plugin/

作用:该插件将会自动生成6个环境变量。让我们在后面脚本等地方使用。

Variable

Description

BUILD_USER

Full name (first name + last name) 就是我们的登录用户名

BUILD_USER_FIRST_NAME

First name 用户名开头

BUILD_USER_LAST_NAME

Last name 用户名结尾

BUILD_USER_ID

Jenkins user ID 用户id

BUILD_USER_GROUPS

Jenkins user groups 用户分组

BUILD_USER_EMAIL

Email address 用户邮件地址

有些构建过程,需要知道是谁操作的。那么这个插件就可以便捷创建了。

DingTalk

当前版本:2.4.10

插件地址:https://plugins.jenkins.io/dingding-notifications/

作用:该插件可以将编译过程通过钉钉机器人发送到我们的钉钉群中。

这个插件安装之后,必须重启Jenkins才能在具体任务中生效的。

NodeJs Plugin

当前版本:1.5.1

插件地址:https://plugins.jenkins.io/nodejs/

作用:该插件为NodeJs & npm 项目提供Jenkins集成。前端页面编译构造过程中会需要NodeJs。

这个插件就必不可少。

Build Name and Description Setter

当前版本:2.2.0

插件地址:https://plugins.jenkins.io/build-name-setter

作用:该插件将构建的显示名称设置为#1、#2、#3…之外的其他名称,以便您可以使用在上下文中更有意义的标识符。安装此插件时,您的作业配置页面将获得附加设置,允许您为每个新生成指定生成名称。配置完毕后,也可以在Pipeline中使用。除了定义名称外,还可以定义一些描述信息哦。

Job Configuration History

当前版本:1183.v6e2785ff75e0

插件地址:https://plugins.jenkins.io/jobConfigHistory/

作用:该插件保存所有作业和系统配置的副本。我们如果配置完毕后,想撤销以前的配置。那么这个插件就是神器了。

如果你更改了某个配置,但是现在又想更改回去,没有备份而且忘了,那么可以使用这个插件。

它会在面板中创建一个Job Conflg History 菜单。将会显示我们每一次的配置更改。我们可以一键回滚到指定配置

Display Console Output

当前版本:1.0.5

插件地址:https://plugins.jenkins.io/display-console-output/

作用:该插件可以直接在项目页面展现上一个构建的控制台输出界面。这样我们点击构建后,可以很方便的看到构建输出日志了。建议安装。

Monitoring

当前版本:1.91.0

插件地址:https://plugins.jenkins.io/monitoring/

作用:该插件通过JavaMelody监控Jenkins的性能。

Active Choices

当前版本:2.6.4

插件地址:https://plugins.jenkins.io/uno-choice

作用:该插件用于参数化的自由式Jenkins作业,以创建脚本化、动态和交互式作业参数。活动选项参数可以动态更新,并可以呈现为组合框、复选框、单选按钮或丰富的HTML UI小部件。根据所选参数,自动调出对应参数所依赖的后续参数。

通俗解释:在一个项目中,可以根据变量选择,执行不同的构建脚本或者构建过程。提高复用性。

Git parameter

当前版本:0.9.18

插件地址:https://plugins.jenkins.io/git-parameter/

作用:该插件允许您在构建中指定git分支、标记、请求或修订号作为参数。可以让我们基于Git的参数化构建。

这个插件会自动使用Git 和 Git Client插件

Gitee

当前版本:1.2.7

插件地址:https://plugins.jenkins.io/gitee/

作用:该插件允许Gitee在提交代码或打开/更新合并请求时触发Jenkins中的构建。它还可以将构建状态发送回Gitee。和上面的GitLab Plugin插件是一样的。只是针对的平台不一样了而已。

Jira

当前版本:3.8

插件地址:https://plugins.jenkins.io/jira/

作用:该插件允许Jenkins执行错误报点的记录。如果通过JIRA记录Bug列表。那么这个插件值得大家试试。

插件将自动将所有匹配的问题名称超链接到Jira。

3.总结

上面的插件,通过标题都可以在 https://plugins.jenkins.io/ 官方插件市场上查询到。

通过每个插件地址,都可以通过浏览器进行下载.hpi文件(Jenkins 插件的文件格式)。

安装插件有两种方式:

  1. 通过Jenkins后台的系统管理中的插件管理的Available plugins 进行搜索安装。
  2. 通过插件管理中的Advanced Setting面板的Deploy Plugin功能,上传hpi文件后点击Deploy按钮进行本地上传安装。

所有介绍到这里就结束了。希望能够解决大家的一部分疑惑。