小编Dav*_*son的帖子

Jenkins Multibranch Pipeline失败,因为它在Groovy Sandbox中运行

我的Jenkins CI/CD构建配置正常工作,直到我上一次拉取请求才发生变化,我需要重新开始工作.

多枝管道被配置为运行jenkinsfile从到位桶SCM但现在与下面的错误而失败;

groovy.lang.MissingPropertyException: No such property: pipeline for class: groovy.lang.Binding
    at groovy.lang.Binding.getVariable(Binding.java:63)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:130)
Run Code Online (Sandbox Code Playgroud)

已安装脚本安全插件,并且进程内脚本批准未列出任何要批准的内容.

安装了Permissive Script Security Pluginjenkins.xml进行了修改,以包含-Dpermissive-script-security.enabled=true运行该标志的标志.war.

这些是基于如何禁用Jenkins管道构建的安全检查而实现和工作的

作为测试,我创建了一个Pipeline作业,允许启用和禁用Groovy Sandbox.这是使用我的管道脚本的以下减少版本配置的;

#!groovy

pipeline {

    agent any

    environment {
        VERSION = "${env.MAJOR_VERSION}.${env.MINOR_VERSION}"
        BUILD_LABEL = "MyProject ${env.VERSION} Build #${env.BUILD_NUMBER}"
        BUILD_SOURCESDIRECTORY = "${WORKSPACE}\\src"
    }

    options {
        copyArtifactPermission('MyProject-Deploy')
        buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5'))
    }

    parameters {
        string (
            defaultValue: '3',
            description: 'MyProject Major Version',
            name : 'MAJOR_VERSION') …
Run Code Online (Sandbox Code Playgroud)

jenkins-groovy jenkins-pipeline

5
推荐指数
1
解决办法
2512
查看次数

从父窗口关闭子窗口

我无法弄清楚为什么这不起作用.这段代码有问题吗?正在调用该函数我通过警报检查但它不会关闭窗口.

 $('#click').click(function() {
   var win = window.open("test3.html","something","width=550,height=170");
 });

 function closeit(){
   win.close();
 }
Run Code Online (Sandbox Code Playgroud)

并在test3.html上

 window.opener.closeit();
Run Code Online (Sandbox Code Playgroud)

javascript jquery parent-child

4
推荐指数
1
解决办法
3万
查看次数

HTTPModule BeginRequest应该是Response.Redirect或Server.Transfer

我们有一个URLRewriting模块,它使用BeginRequest事件方法中的Response.Redirect来更改目标页面.

  • 使用Server.Transfer或Server.TransferRequest而不是Response.Redirect会更好吗?
  • 解决方案中还有其他HTTP模块,我是否会通过使用Server.Transfer绕过任何其他模块,或者服务器是否会像新请求一样开始,只是保存到浏览器的往返?
  • 客户是否会注意到任何差异,服务器是否会以不同方式处理请求?

以下问题涵盖重定向和传输之间的差异,但不包括HTTP模块中的差异;

编辑: HttpContext.RewritePath也在模块中使用,所以我们似乎有三种技术可以从原始路径移动初始请求; 分别是Redirect,Transfer,RewritePath; 返回浏览器,返回HTTP管道的开始并继续处理新路径.

asp.net url-rewriting httpmodule

2
推荐指数
1
解决办法
6842
查看次数

哪个iOS框架最有用的学习方式和顺序?

我刚刚开始学习用于开发iPhone和iPad应用程序的Obj-C和Cocoa-Touch框架.当你向XCode项目添加一个框架时,我不禁注意到有很多人需要熟悉,例如AddressBook,CoreData,Foundation,Security等.

  • 哪些框架对大多数项目来说都很常见,而掌握最重要的是UIKit?
  • 哪些框架需要对另一个框架有先决条件的理解?
  • 哪些框架是特定于应用程序的,可以在需要之前保留,即加速?

frameworks objective-c ios

2
推荐指数
1
解决办法
1403
查看次数

带有 If Else 的 Python 嵌套列表理解

我试图使用列表理解来替换值列表中的多个可能的字符串值。

我有一个列名列表,这些列名取自cursor.description;

['UNIX_Time', 'col1_MCA', 'col2_MCA', 'col3_MCA', 'col1_MCB', 'col2_MCB', 'col3_MCB']
Run Code Online (Sandbox Code Playgroud)

然后我有header_replace;

{'MCB': 'SourceA', 'MCA': 'SourceB'}
Run Code Online (Sandbox Code Playgroud)

我想用值替换header_replace.keys()在列名称中找到的字符串值。

我不得不使用以下循环;

headers = []
for header in cursor.description:
    replaced = False
    for key in header_replace.keys():
        if key in header[0]:
            headers.append(str.replace(header[0], key, header_replace[key]))
            replaced = True
            break

    if not replaced:
        headers.append(header[0])
Run Code Online (Sandbox Code Playgroud)

这给了我正确的输出;

['UNIX_Time', 'col1_SourceA', 'col2_SourceA', 'col3_SourceA', 'col1_SourceB', 'col2_SourceB', 'col3_SourceB']
Run Code Online (Sandbox Code Playgroud)

我尝试使用这个列表理解;

[str.replace(i[0],k,header_replace[k]) if k in i[0] else i[0] for k in header_replace.keys() for i in cursor.description]
Run Code Online (Sandbox Code Playgroud)

但这意味着为不匹配的键复制了项目,我会得到;

['UNIX_Time', 'col1_MCA', 'col2_MCA', 'col3_MCA', …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

1
推荐指数
1
解决办法
6213
查看次数

CSS - 图片和文本之间不间断空格

我想寻求有关此任务的帮助:\n我希望在 img 和一段文本之间有一个不间断的空格。但问题是,有时即使出现不间断空格,图像和文本之间的线条也会中断。\n我哪里错了?

\n\n

这是 JsFiddle:\n https://jsfiddle.net/cj7Lp1vy/9/

\n\n

超文本标记语言

\n\n
<div id="parent">\n    <div id="child">\n        <!-- some content -->\n        <div class="cl">\n            <img src="obrazky/plocha.png">&nbsp;Plocha: 11 m<sup>2</sup>\n            <img src="obrazky/pocet_pokoju.png">&nbsp;Pokoje: 2\n            <img src="obrazky/rekonstrukce.png">&nbsp;Rekonstrukce: ne\n            <img src="obrazky/okna.png">&nbsp;Okna: star\xc3\xa1\n            <img src="obrazky/topeni.png">&nbsp;Topen\xc3\xad: d\xc5\x99evo\n            <img src="obrazky/typ_stavby.png">&nbsp;Typ stavby: d\xc5\x99evo            \n        </div>\n    </div> \n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

CSS

\n\n
#parent {\n    width:235px;\n    min-height:110px;\n    border:1px solid #CCCCCC;\n    padding:15px 10px 10px 10px;\n    margin:0px 12px 24px 12px;\n    border-radius: 10px;\n    -moz-border-radius: 10px;\n    -webkit-border-radius: 10px;\n}\n#child {\n    position:relative;\n}\n.cl {\n    clear:both;\n}\nimg {\n    border:1px solid red;\n    width:16px;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

html css

1
推荐指数
1
解决办法
2392
查看次数

交互式地,不允许文本输入中的第一个字符是一个空格或一组空格

首先,这不是一个重复的问题。我遇到的大多数类似问题都不会以交互方式执行所需的操作(例如“onkeydown”、“onkeyup”等)。我需要一个纯 JavaScript(即NO jQuery函数来禁止基于文本的输入的第一个字符是仅给定元素 ID 的空格或空格组。这是我所拥有的:

<script type="text/javascript">

/* Don't allow the first character of a "text-based" input element
 * (e.g. text-box, text-area, editable-div's) to be a space, given
 * the elements ID ([ eID ]). [BEGIN]
 */

function noPrecedingSpace ( eID )
{

    var elmt = document.getElementById(eID);

    elmt.addEventListener("keydown", function(event)
    { 
        var strg = elmt.value;
        var lastChar = strg.charAt(strg.length - 1);

        if ((lastChar == " ")||(lastChar == "&nbsp;")||(strg == ""))
        {
            return event.which …
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
5402
查看次数

为什么 count 从字符数组中输出错误的字符

我有一个写入的多维字符数组,然后使用嵌套的 for 循环打印出来,但由于某种原因它输出垃圾,我做错了什么?

#include <iostream>
#include <string>
using namespace std;

class CheckerBoard {
public:
    void initBoard() {
        for(int y = 0; y < 0; y++) {
            for(int x = 0; x < 0; x++) {
                if((x % 2) == 0) {
                    _board[y][x] = ' ';
                } else {
                    _board[y][x] = '*';
                }
            }
        }
    }
    void printBoard() {
        for(int y = 0; y < 8; y++) {
            for(int x = 0; x < 8; x++) {
                cout << _board[y][x];
            } …
Run Code Online (Sandbox Code Playgroud)

c++ arrays cout

-24
推荐指数
1
解决办法
544
查看次数