小编Aru*_*gal的帖子

Gradle - 如何在Gradle中添加一些延迟暂停挂起

我正在寻找一种方法,在两个gradle任务的调用之间插入几秒的暂停.

我可以用

firstTask.doLast {

.....

}
Run Code Online (Sandbox Code Playgroud)

类似于Linux/Unix的东西

sleep 45
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sleep task delay gradle onpause

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

禁用给定Jenkins视图/选项卡中的所有Jenkins作业

我在Jenkins创建的一个名为"Gradle Deploys"的视图中有大约100-120个作业.如何仅从给定的视图/选项卡禁用Jenkins的所有作业.

我尝试了以下groovy语法,首先只显示给定视图中的所有作业,但它出错了.

jenkins = Hudson.instance

//The following works actually but gives a lot of info.
//println "----" + jenkins.instance.getView("Gradle Deploys").items

println "----" + jenkins.instance.getView("Gradle Deploys").items.each.getItems().print(it)
Run Code Online (Sandbox Code Playgroud)

一旦我在给定视图中获得了只是作业名称的列表,我只需要在上面的命令中使用".disable()"函数,它就可以工作了.

如果我使用下面的代码,它会做我想要的,但我正在寻找一个衬垫.

for (item in jenkins.instance.getView("Gradle Deploys").items) {
   println("\nJob: $item.name")
   item.disabled=true

}  
Run Code Online (Sandbox Code Playgroud)

groovy gradle jenkins jenkins-scriptler jenkins-cli

7
推荐指数
2
解决办法
5747
查看次数

Jenkins作业状态 - 自定义作业的颜色/状态

有没有办法自定义Jenkins作业的状态,以使用不同的图标或颜色,而不仅仅是简单的蓝色/绿色球图标.

类似于我们在cloudbees Jenkins实例或类似内容中看到的内容.

https://jenkins.ci.cloudbees.com/

对于更多(如果可能),我想要一个选项,让排队的构建作业的球状态更改为不同的颜色或图标.例如,时钟/秒表或沙漏,或者可以将颜色更改为清晰的白色球体.这将有助于新用户避免意外启动排队的构建多次,期望作业状态图标开始闪烁等.

icons status hudson-plugins jenkins jenkins-plugins

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

Jenkins - 无法下载升级/插件 - 代理已经设置 - 能够通过IE中的http罚款达到.hpi

我从Jenkins网站获得了Windows Native .zip,并在我的机器(Win 7)上安装了Jenkins作为Windows服务.

漂亮的仪表板已经启动,现在我想下载一些插件/甚至升级版本(第一个),因为几个星期后我得到了.zip.

当我尝试升级/下载插件时(在Manage Jenkins下),我收​​到以下错误消息,不知道我可能缺少什么.

在Plugin的ADVANCE选项卡下,我提供了代理服务器和端口.另一点我注意到,当我下载一个插件(并且它失败)显示插件.hpi文件的链接时,如果我在Internet Explorer中使用"http://../../.hpi",它弹出好(告诉我打开/保存等)所以从某种意义上说,我能够直接到达.hpi文件.我可以手动下载.hpi文件并将其放在Jenkins安装/ ..相应的/../../文件夹下,并在每次安装新的/重新安装现有.hpi时重新启动Jenkins服务,但我不想这样做那.

安装插件/升级

Preparation 

    Checking internet connectivity
    Checking update center connectivity
    java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at hudson.model.UpdateCenter$UpdateCenterConfiguration.testConnection(UpdateCenter.java:860) at hudson.model.UpdateCenter$UpdateCenterConfiguration.checkUpdateCenter(UpdateCenter.java:709) at hudson.model.UpdateCenter$ConnectionCheckJob.run(UpdateCenter.java:1030) …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins

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

Jacoco Gradle jacocoTestReport 任务失败生成报告时出错 - 是一个目录

我正在使用 Gradle 1.6。

我运行以下命令,它适用于所有项目
gradle clean build jacocoTestReport

今天,我看到其中一个项目在“jacocoTestReport”部分失败。PS附上错误日志。

主要的错误行是

12:35:45.920 [ERROR] [org.gradle.BuildExceptionReporter] 引起的: :创建报告时出错
....
12:35:45.924 [ERROR] [org.gradle.BuildExceptionReporter] 引起的:java.io.FileNotFoundException:/production/jenkinsAKS/workspace/MFUSvc/src/java-test/com/thc/ids/ws/mfu/msg/formulary(是一个目录)

需要注意的几点:

  1. 这个项目正在构建罚款没有错误,但今天我看到了这个错误。
  2. 我尝试使用两个/不同版本的 jacoco(如下所示) - jacocoTestReport 任务在使用这两个版本的所有其他项目中都可以正常工作,但在这个版本中失败了。

    jacoco {
    //toolVersion = "0.6.2.201302030002"
    toolVersion = "0.7.0.201403182114"
    // reportsDir = file("$buildDir/customJacocoReportDir")
    }

  3. 在给定的 src/java-test/.../... 路径下,我看到一个有效的 .java 文件和我的工作区(一旦 compileJava 等 Gradle 任务完成,我看到 build/classes/{main, test, integrationTest }/... 文件夹包含一个有效的 .class 文件(对于出现在错误中并说“是一个目录”的那个路径。

知道我错过了什么。

FULL(--stacktrace 或--debug 日志)显示

12:35:45.893 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire exclusive lock on task artifact state cache (/production/jenkinsAKS/workspace/MFUSvc/.gradle/1.6/taskArtifacts).
12:35:45.893 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock …
Run Code Online (Sandbox Code Playgroud)

file report gradle jacoco

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

如何将工件上载到Artifactory /在构建系统中使用它(Gradle Maven Ant),其中工件没有扩展

我有以下文件,我想作为9.8.0版本的工件上传到Artifactory.

注意:前两个文件没有扩展名(它们是可执行文件,即如果你打开它们/ cat,你会看到垃圾字符).

CVS中给定版本9.8.0的文件夹/文件如下:

com.company.project/gigaproject/v9.8.0/linux/gigainstall
com.company.project/gigaproject/v9.8.0/solaris/gigainstall
com.company.project/gigaproject/v9.8.0/win32/gigainstall.exe
com.company.project/gigaproject/v9.8.0/gigafile.dtd
com.company.project/gigaproject/v9.8.0/gigaanotherfile.dtd
com.company.project/gigaproject/v9.8.0/giga.jar
com.company.project/gigaproject/v9.8.0/giga.war

上传具有扩展名的上述文件非常简单...您可以作为管理员/用户登录Artifactory,有权访问部署工件,单击"部署"选项卡,浏览Artifactory文件,一旦选择文件,点击"上传"按钮.

在此输入图像描述

接下来,您将看到一个屏幕(如上所示).你将在这个页面的字段中调整你想要的东西,一旦你点击"Deploy Artifact",你就完成了.您需要确保file.extension在上传时选择正确的文件,并确保文件扩展名正确显示在"目标路径"框中(使用版本-xxx等).

我的问题:

问题1:如何上传没有扩展名的工件?默认情况下,Artifactory似乎将工件作为.jar扩展名.如何上传Linux和Solaris上面的文件夹/文件结构中显示的"gigainstall"工件?我看到我可以将工件名称用作gigainstall-linux和gigainstall-solaris并区分它,但我不知道如何告诉Artifactory这个工件没有任何扩展名.

我认为开发团队不会开始使用适当的扩展来生成这个工件(因为这个工件可能在其他项目中的任何地方都被硬编码,他们当前从某个地方从CVS/SVN源控件获取它 - 这本身就是一个不好的做法.将工件存储在源控件版本工具中).

在此输入图像描述

问题2:我如何告诉构建系统(例如,Gradle)在"编译"任务期间使用非扩展工件.在build.gradle下的section dependencies {..}下,我将添加如下所示的内容,但我不确定非扩展文件(我在上面提到的文件夹/文件结构中的前两个).

dependencies {
     //compile 'com.company.project:gigainstall-linux:9.8.0@'
     //compile 'com.company.project:gigainstall-linux:9.8.0@??????'
     //compile 'com.company.project:gigainstall-linux:9.8.0@""'
     //compile 'com.company.project:gigainstall-linux:9.8.0@"none"'
     //compile 'com.company.project:gigainstall-linux:9.8.0@"NULL_or_something"'

     // The following will easily get giga.jar version giga-9.8.0.jar from Artifactory repository
     compile 'com.company.project:giga:9.8.0'

     // The following will easily get giga.war
     compile 'com.company.project:giga:9.8.0@war'

     // Similarly, other extension based artifacts can be fetched from Artifactory
     compile 'com.company.project:gigafile:9.8.0@dtd'
     compile 'com.company.project:gigaanotherfile:9.8.0@dtd'
}

upload file artifact artifactory gradle

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

Ansible - 当条件不适用于剧本级别的 vars_prompt 时

安塞布尔2.1.2.0

vars_prompt我遇到了一种情况,我想与大家核实一下,看看 Ansible功能和条件是否可以解决该问题when

Ansible 有一个名为: vars_prompt的功能,我想将其与when条件结合起来(when: ...我们通常在任务或剧本级别操作的任务中使用)

PS:我的问题与这篇文章不同Ansible to Conditionally Prompt for a Variable? 即我的vars:变量不依赖于任何机器的操作系统 ENV 变量,在我的例子中,我只有一个简单的硬编码变量值vars:。我还在主剧本级别(而不是任务级别)运行when 条件。

我想做的是提示用户输入变量值,只有在命令行中用户调用了ansible-playbook install_tool.yml ... ...with--extra-vars "install_tool=true"

workspace/ansible /install_tool.yml中我有:

- hosts: all
  become: true
  gather_facts: false

  vars:
    instance: test
    #install_tool: false
    company_api_url: DUMMY_INVALID_URL

  vars_prompt:
    - name: "company_api_url"
      prompt: "Enter Company API URL: "
      default: "https://{{ instance }}.company.com"
      private: no
      when: install_tool == "true" and …
Run Code Online (Sandbox Code Playgroud)

variables prompt ansible ansible-2.x

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

错误:任务':app:transformClassesWithMultidexlistForDebug'的执行失败.> java.lang.UnsupportedOperationException(无错误消息)

我尝试了许多在线发布的解决方案,但没有任何对我有用.我的程序运行正常.但是在冬歇期之后,它产生了以下错误:错误:任务':app:transformClassesWithMultidexlistForDebug'的执行失败.

java.lang.UnsupportedOperationException(无错误消息)

我的gradle文件如下所示:

buildscript {
repositories {
    maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
}
}

apply plugin: 'com.android.application'

repositories {
    maven { url 'http://download.crashlytics.com/maven' }
    maven { url "https://jitpack.io" }
}

apply plugin: 'crashlytics'

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.2"

    compileOptions{
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    defaultConfig {
        applicationId "x"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 20
        versionName "1.2"
        multiDexEnabled true
    }

    lintOptions {
        abortOnError false
    }

    signingConfigs {
        release {
            storeFile file("../x.jks")
            storePassword "x"
            keyAlias "x" …
Run Code Online (Sandbox Code Playgroud)

gradle android-studio

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

使用 sed 在文件中插入存储在变量中的多行

乌班图14.04

我想将源文件中存储的几行插入到目标文件中。我将读取变量中的所有这些行$var,即如果我这样做,echo "${var}"它将给出以下输出 - 我想将其添加到我的 apache 配置文件中的给定行中。

我的确切源文件(又名${var})内容是:

        ## apppush proxying - get content from live site --##
        RewriteRule /apppush/hreflang/(.*) http://localhost:8081/hreflang.php?u=https://www.company.com/apppush/hreflang/$1 [P,L]

        RewriteCond /www/retaildb/companycom/us/branches/somebranch/us/%{SCRIPT_FILENAME} -d [OR]
        RewriteCond /www/retaildb/companycom/us/branches/somebranch/us/%{SCRIPT_FILENAME} -f
        RewriteRule ^/apppush/retail/(.*) /www/retaildb/companycom/us/branches/somebranch/us/%{SCRIPT_FILENAME} [L]

        ## Search/GIGA apppush rewrite
        RewriteCond %{DOCUMENT_ROOT}%{SCRIPT_FILENAME} !-f
        RewriteCond %{DOCUMENT_ROOT}%{SCRIPT_FILENAME} !-d
        RewriteRule ^/apppush/(.*)/search/(.*) /www/giga/%{SCRIPT_FILENAME} [L]

        RewriteRule /apppush/(.*) https://www.company.com/apppush/$1 [P]
        ## END apppush Rewrites --##
Run Code Online (Sandbox Code Playgroud)

为了使用简单的示例执行上述操作,我尝试了以下命令,这给了我一个错误。

例如:我想将${var}包含一些值(总共 3 行)的内容添加到 giga.txt 文件中的第 3 行。

$ cat giga.txt
1
2
3
4 …
Run Code Online (Sandbox Code Playgroud)

linux sed in-place

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

Gradle PMD Checkstyle Findbugs - 用于Java构建的sourceSet目录

Gradle 1.6 Linux.

Java构建项目结构

  • Project_or_Module
    • src/java(包含java源代码)
    • test/java(包含JUnit测试 - 单元测试)
    • src/java-test(包含集成测试)
    • etc/etc(项目下的其他.. ..文件夹)

我有以下全局配置/ build.gradle文件:

   apply plugin: 'java'
   apply plugin: 'pmd'
   apply plugin: 'findbugs'
   apply plugin: 'checkstyle'
   apply plugin: 'code-quality'
   apply plugin: 'jacoco'

   tasks.withType(Compile) {
     options.debug = true
     options.compilerArgs = ["-g"]
   }

   checkstyle {
        configFile = new File(rootDir, "config/checkstyle.xml")
        ignoreFailures = true
   }


   findbugs {
        ignoreFailures = true
   }

   pmd {
        ruleSets = ["basic", "braces", "design"]
        ignoreFailures = true
   }

   jacoco {
      toolVersion = "0.6.2.201302030002"
      reportsDir = file("$buildDir/customJacocoReportDir")
   }

   sourceSets { …
Run Code Online (Sandbox Code Playgroud)

findbugs ignore checkstyle pmd gradle

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