当前位置: 首页 > news >正文

网站地图提交入口百度网站怎么提升排名

网站地图提交入口,百度网站怎么提升排名,手机网址2021年免费不封,吕子乔做网站一段台词文章目录1、设置全局共享库2、共享库的目录结构3、Jenkinsfile使用共享库在Jenkins中直接使用File对象读取文件,会存在权限问题,读写文件只能用readFile、writeFile两个步骤,大多情况这两个步骤已经够用,但是如果需要读取maven的p…

文章目录

    • 1、设置全局共享库
    • 2、共享库的目录结构
    • 3、Jenkinsfile使用共享库

在Jenkins中直接使用File对象读取文件,会存在权限问题,读写文件只能用readFile、writeFile两个步骤,大多情况这两个步骤已经够用,但是如果需要读取maven的pom.xml文件的版本号,或者maven项目存在多模块情况下,需要检测当前被更新过的模块,可以使用共享库来实现。

1、设置全局共享库

设置方式Manage Jenkins » Configure System » Global Pipeline Libraries
在这里插入图片描述

Library Name #共享库的标识,在jenkinsfile中使用。
Default version #默认版本号,可以是分支名或tag标签。
Load implicitly #隐式加载,不再需要显式@Library('jenkins-penngo-library@main')的方式加载使用。
Allow default version to be overridden #如果勾选,允许被jenkinsfile配置的版本号覆盖。
Include @Library changes in job recent changes #如果勾选,则共享库的变更信息也会打印在构建信息中。
Cache fetched versions on controller for quick retrieval #如果选中此项,使用此库获取的版本将缓存在控制器上。
Retrieval method #配置公共库获取的方式,选择“Modern SCM”,选择使用Git仓库。也支持SVN仓库。
Library Path (optional) #允许您设置从SCM根目录到库目录的相对路径。针对根目录不是库目录的情况

共享库在系统内默认是是“可信的”,可以运行Java、Groovy、Jenkins内部API、Jenkins插件或第三方库中的所有方法。涉及安全更高级别的库或API应该封装在共享库中,以便在流水线中安全使用。

2、共享库的目录结构

├─src
│  ├─PomUtils.groovy
│  └─ModuleChange.groovy
├─var├─sayHello.groovy
src #目录是标准的java源码结构,目录中放置的主要为类库。
var #目录是函数目录,主要存放全局调用的函数。

PomUtils.groovy
使用Dom读取pom.xml,获取version节点的版本号

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.io.Serializable;class PomUtils implements Serializable{static def getVersion(file){def dbFactory = null;def db = null;def document = null;String version = "";try{File f = new File(file);dbFactory = DocumentBuilderFactory.newInstance();db = dbFactory.newDocumentBuilder();document = db.parse(file);Element projectElement = document.getDocumentElement();NodeList nodeList = projectElement.getChildNodes();for(int i = 0; i < nodeList.getLength(); i++){Node node = nodeList.item(i);if(Node.ELEMENT_NODE == node.getNodeType()){if("version".equalsIgnoreCase(node.getNodeName().trim())){version = node.getTextContent();break;}}}}catch(Exception e){System.out.println("error=" + e.getMessage());version = e.getMessage();}return version;}
}

ModuleChange.groovy

import java.io.File;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;class ModuleChange {static boolean isChangeFile(path,  millis){File[] files = path.listFiles();if(files != null){for(File file:files){if(file.isFile() == true && millis < file.lastModified()){return true;}if(file.isDirectory() && isChangeFile(file, millis) == true){return true;}}}return false;}static String checkModule(project){long millis = System.currentTimeMillis() - 1000 * 60 * 2;List<String> paths = Arrays.asList("task","web");String module = "";for(String path:paths){File file = new File(project, path);System.out.println(file.getAbsolutePath());if(isChangeFile(file, millis) == true){module = path;break;}}System.out.println("更新模块=={" + module + "}");return module;}
}

sayHello.groovy

def call(String info) {echo "=====${info}======="
}

3、Jenkinsfile使用共享库

共享库使用的是Groovy代码,在Jenkinsfile中使用时,必须放在script指令里面。
需要部署的项目

test
├─task
│  ├─src
│  └─pom.xml
├─web
│  ├─src
│  └─pom.xml
├─pom.xml
@Library('jenkins-penngo-library@main') _pipeline{stages{stage("发布"){steps{script{sayHello("准备构建")// ......省略的代码def module = ModuleChange.checkModule(".");def version = PomUtis.getVersion("${module}/pom.xml")sh("""cd ${module}mvn clean package -Dmaven.test.skip=true""")// ......省略的代码sh("""cd targetzip -q -r ${module}-${version}.zip ${module}-${version}.jar bootstrap.yml""")// ......省略的代码,sshPublisher上传到服务器sh("""unzip -oq ${module}-${version}.zip -d ${app_name}cd ${app_name}java -XX:+UseG1GC -Xmx1G -jar ${module}-${version}.jar -Dspring.config.location=./bootstrap.yml --spring.profiles.active=prod """)}}}}
}
http://www.lbrq.cn/news/2441863.html

相关文章:

  • 网站风格包括哪些免费隐私网站推广
  • 一流的网站建设案例合肥百度关键词推广
  • 成人用品网站优化方法semester什么意思
  • seo优化 div css_网站架构优化如何在百度上添加店铺的位置
  • 天津品牌网站建设公司seo基础知识包括什么
  • 自己创建网站怎么得流量钱建站系统软件有哪些
  • 网站建设找哪些平台凡科网站官网
  • 做网站后台要学信阳seo优化
  • 前端工程师是做网站吗百度公司推广
  • 已有网站做移动网站媒体网络推广价格优惠
  • 有关建设的新闻网站搜索引擎优化的完整过程
  • 网站优化流程图公司推广文案
  • 公家网站模板网络营销的特点有
  • 哪些网站不扣流量如何注册网站怎么注册
  • 东莞微信网站建设nba最新交易新闻
  • 外贸客户开发系统国外seo
  • 女包建设网站前的市场分析搜索引擎bing
  • 在线装修设计网站什么软件可以推广
  • 中国建站公司登封网络推广
  • 石家庄市网站建设培训班品牌推广策略
  • 校园类网站模板百度收录的网站
  • 支付网站建设费入什么科目网络推广方案设计
  • 建立自己的影视网站教育机构网站
  • 网站建设脱颖而出我想在百度上发布广告怎么发
  • 手机网址是什么深圳seo教程
  • 郑州个人网站建设公司排行榜搜索引擎优化seo名词解释
  • 石家庄做网站好的网络技术有限公司seo是搜索引擎吗
  • 汉口专业网站推广公司武汉seo优化排名公司
  • 西城h5网站建设外贸平台推广
  • 做调查的网站电话投放小网站
  • C++核心编程学习--对象特性--友元
  • 智慧城市多目标追踪精度↑32%:陌讯动态融合算法实战解析
  • Linux内核设计与实现 - 课程大纲
  • GIS地理信息系统建设:高精度3D建模
  • xLua和C#交互
  • 量子涨落驱动的全局寻优:单光子CIM的理论与实证