小编mko*_*bit的帖子

Git中HEAD ^和HEAD~之间有什么区别?

当我在Git中指定一个祖先提交对象时,我在HEAD^和之间感到困惑HEAD~.

两者都有像" HEAD^3和"这样的"编号"版本HEAD~2.

它们看起来与我非常相似或相同,但是波浪号和插入符之间有什么区别吗?

git

688
推荐指数
15
解决办法
15万
查看次数

如何从Java设置环境变量?

如何从Java设置环境变量?我看到我可以使用子进程执行此操作ProcessBuilder.我有几个子进程要启动,所以我宁愿修改当前进程的环境,让子进程继承它.

有一个System.getenv(String)获取单个环境变量.我也可以获得一套Map完整的环境变量System.getenv().但是,要求put()Map引发UnsupportedOperationException-显然,他们的意思是对环境只能被读取.并且,没有System.setenv().

那么,有没有办法在当前运行的进程中设置环境变量?如果是这样,怎么样?如果没有,理由是什么?(这是因为这是Java,因此我不应该做一些邪恶的非便携式过时的事情,比如触摸我的环境吗?)如果没有,那么管理环境变量的任何好建议都会改变我需要提供给几个子进程?

java environment-variables

270
推荐指数
13
解决办法
35万
查看次数

Ruby on Rails中的@变量

@title和之间有什么区别title?因为它们都可以是变量名.另外,我如何决定应该使用哪种变量?有@没有?

ruby variables ruby-on-rails

269
推荐指数
5
解决办法
15万
查看次数

Gradle中buildscript块的目的

我是Gradle的新手,我正在阅读文档,但我不了解它的某些部分.其中一个部分与buildscript块连接.它的目的是什么?

如果构建脚本需要使用外部库,则可以将它们添加到构建脚本本身的脚本类路径中.您可以使用buildscript()方法执行此操作,并传入一个声明构建脚本类路径的闭包.

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath group: 'commons-codec', name: 'commons-codec', version: '1.2'
  }
}
Run Code Online (Sandbox Code Playgroud)

好的但是有什么区别:

repositories {
  mavenCentral()
}
dependencies {
  compile group: 'commons-codec', name: 'commons-codec', version: '1.2'
}
Run Code Online (Sandbox Code Playgroud)

例如,为什么有必要使用buildscript

classpath gradle

219
推荐指数
5
解决办法
5万
查看次数

设计模式:工厂与工厂方法与抽象工厂

我正在从网站上阅读设计模式

在那里我读到了有关工厂,工厂方法和抽象工厂的信息,但它们很混乱,我对定义并不清楚.根据定义

Factory - 创建对象而不将实例化逻辑暴露给客户端,并通过公共接口引用新创建的对象.是Factory Method的简化版本

工厂方法 - 定义用于创建对象的接口,但让子类决定实例化哪个类,并通过公共接口引用新创建的对象.

抽象工厂 - 提供用于创建相关对象族的界面,而无需明确指定其类.

我还查看了关于抽象工厂与工厂方法的其他stackoverflow线程,但是那里绘制的UML图使我的理解更加糟糕.

有谁能告诉我

  1. 这三种模式如何相互不同?
  2. 什么时候用哪个?
  3. 如果可能的话,任何与这些模式相关的java示例?

java language-agnostic design-patterns factory factory-method

164
推荐指数
6
解决办法
8万
查看次数

尝试在unix上连接到Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock

我是码头工人的新手.我只是尝试在我的本地机器(Ubuntu 16.04)中使用docker和Jenkins.

我使用下面的管道脚本配置了一个新作业.

node {
    stage('Build') {
      docker.image('maven:3.3.3').inside {
        sh 'mvn --version'
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它失败并出现以下错误.

在此输入图像描述

jenkins docker jenkins-pipeline

111
推荐指数
15
解决办法
10万
查看次数

Jenkins CI Pipeline Scripts不允许使用方法groovy.lang.GroovyObject

我正在使用Jenkins 2来编译Java项目,我想从pom.xml中读取该版本,我遵循这个例子:

https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md

这个例子表明:

带有问题功能的全Jenkins管道盘旋

似乎访问文件系统存在一些安全问题,但我无法弄清楚它给出了什么(或为什么)这个问题:

我只是做了一个与示例有点不同的事情:

def version() {
    String path = pwd();
    def matcher = readFile("${path}/pom.xml") =~ '<version>(.+)</version>'
    return matcher ? matcher[0][1] : null
}
Run Code Online (Sandbox Code Playgroud)

我在运行'version'方法时遇到的错误:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object (org.codehaus.groovy.runtime.GStringImpl call org.codehaus.groovy.runtime.GStringImpl)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:165)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:117)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
    at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
    at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
    at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
    at WorkflowScript.run(WorkflowScript:71)
    at ___cps.transform___(Native Method)
    at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
    at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:100)
    at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
    at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

continuous-integration maven jenkins jenkins-pipeline

85
推荐指数
3
解决办法
15万
查看次数

将一个文件共享/挂载到pod中的最佳方法是什么?

我正在考虑使用秘密来安装单个文件,但似乎你只能挂载将覆盖所有其他内容的目录.如何在不安装目录的情况下共享单个配置文件?

kubernetes

70
推荐指数
5
解决办法
4万
查看次数

在子模块上执行Maven插件目标,但不在父模块上执行

在多模块项目中,如何指定要在所有子模块中执行插件目标,而不是在父项目中执行?有<pluginManagement>,但只定义了执行的配置 - 子模块仍然需要引用插件来执行目标:

[...]但是,这只配置在子节点的plugins元素中实际引用的插件.(POM参考)

有没有其他方法来实现这一目标

更新:我根据Pascal的建议尝试了这个:

<!-- ... -->
<packaging>pom</packaging>
<modules>
  <module>child</module>
</modules>

<build>
  <plugins>
    <plugin>
      <artifactId>maven-jar-plugin</artifactId>
      <executions>
        <execution>
        <phase>integration-test</phase>
        <goals>
          <goal>jar</goal>
        </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
<!-- ... -->
Run Code Online (Sandbox Code Playgroud)

这仍将为父项目生成.jar,即使jar目标已绑定到integration-test阶段.

java maven-2

62
推荐指数
3
解决办法
5万
查看次数

如何从DynamoDB获取项目数?

我想通过DynamoDB查询了解项目计数.

我可以查询DynamoDB,但我只想知道"项目总数".

例如,MySQL中的'SELECT COUNT(*)FROM ... WHERE ...'

$result = $aws->query(array(
 'TableName' => 'game_table',
 'IndexName' => 'week-point-index',
 'KeyConditions' => array(
    'week' => array(
        'ComparisonOperator' => 'EQ',
        'AttributeValueList' => array(
            array(Type::STRING => $week)
        )
    ),
    'point' => array(
        'ComparisonOperator' => 'GE',
        'AttributeValueList' => array(
            array(Type::NUMBER => $my_point)
        )
    )
 ),
));
echo Count($result['Items']);
Run Code Online (Sandbox Code Playgroud)

此代码使所有用户数据高于我的观点.

如果$ result的计数是100,000,$ result太大了.它会超出查询大小的限制.

我需要帮助.

database amazon-dynamodb

53
推荐指数
9
解决办法
7万
查看次数