整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          前端爬坑之路-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作業,以創建腳本化、動態和交互式作業參數?;顒舆x項參數可以動態更新,并可以呈現為組合框、復選框、單選按鈕或豐富的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按鈕進行本地上傳安裝。

          所有介紹到這里就結束了。希望能夠解決大家的一部分疑惑。


          主站蜘蛛池模板: 亚洲毛片αv无线播放一区| 国产精品伦子一区二区三区| 一区二区不卡视频在线观看| 国内精品一区二区三区在线观看 | 亚洲一区二区免费视频| 合区精品久久久中文字幕一区| 国偷自产视频一区二区久| 午夜精品一区二区三区在线观看| 国产成人免费一区二区三区| 亚洲AV无码一区二区三区在线观看| 久久精品一区二区三区中文字幕 | 精品乱码一区内射人妻无码| 精品成人av一区二区三区| 精品国产AⅤ一区二区三区4区| 国产亚洲综合一区柠檬导航| 亚洲码一区二区三区| 日韩一区二区三区不卡视频| 精品国产AⅤ一区二区三区4区| 精品一区二区三区免费毛片爱 | 国产一区三区二区中文在线| 午夜福利一区二区三区在线观看 | 国产精品一区二区久久不卡| 蜜桃传媒视频麻豆第一区| 亚洲影视一区二区| 一区二区手机视频| 国产一区二区三区乱码网站| 亚洲一区日韩高清中文字幕亚洲| 无码人妻少妇色欲AV一区二区| 久久蜜桃精品一区二区三区| 亲子乱av一区二区三区| 在线观看中文字幕一区| 亚洲乱色熟女一区二区三区丝袜 | 亚洲欧洲∨国产一区二区三区| 亚洲A∨精品一区二区三区下载| 精品日本一区二区三区在线观看| 国产福利91精品一区二区三区| 久久精品一区二区影院 | 无码精品久久一区二区三区| 亚洲视频一区网站| 熟女大屁股白浆一区二区| 无码人妻精品一区二区三区久久久 |