小编And*_*mov的帖子

特定包的 Gradle 日志记录级别

如何指定某些 java / groovy 包的日志记录级别?例如,在log4j中,它是这样完成的:

log4j.logger.com.foo.package=WARN
Run Code Online (Sandbox Code Playgroud)

因为调用gradle --debug会产生太多输出。

logging slf4j gradle

6
推荐指数
0
解决办法
260
查看次数

如何使用java或groovy计算目录上的md5校验和?

我希望使用java或groovy来获取完整目录的md5校验和.

我必须将源目录,目标,校验和源和目标以及删除源目录后的目录复制.

我发现这个文件的脚本,但如何与目录做同样的事情?

import java.security.MessageDigest

def generateMD5(final file) {
    MessageDigest digest = MessageDigest.getInstance("MD5")
    file.withInputStream(){ is ->
        byte[] buffer = new byte[8192]
        int read = 0
        while( (read = is.read(buffer)) > 0) {
            digest.update(buffer, 0, read);
        }
    }
    byte[] md5sum = digest.digest()
    BigInteger bigInt = new BigInteger(1, md5sum)

    return bigInt.toString(16).padLeft(32, '0')
}
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

java directory groovy checksum md5

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

使用Spock框架运行Android单元测试

我在用:

  • Android Studio 2.1.3
  • Gradle 2.14.1(我也试过2.14)
  • OpenJDK版"1.8.0_91"

我想用GroovySpock为一些Android应用程序编写一些单元测试.

我已经读过RoboSpock了.

当我尝试运行简单测试时:

package a.b.regex

class TestSum extends spock.lang.Specification {

    def "test adding some numbers"() {
        when:
        def a = 5 + 4

        then:
        a == 9
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在Android Studio中运行此测试时出现错误:

Process finished with exit code 1
Class not found: "a.b.regex.TestSum"Empty test suite.
Run Code Online (Sandbox Code Playgroud)

我使用的配置:

1)

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
    }
}

apply plugin: 'groovyx.grooid.groovy-android'
// ...
dependencies {
    testCompile 'org.robospock:robospock:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

2)

buildscript …
Run Code Online (Sandbox Code Playgroud)

java groovy android gradle spock

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

文件在Android Studio中以错误的编码方式加载:“ UTF-8”

我的Android Studio像这样疯狂了,请帮助?

文件在Android Studio中以错误的编码方式加载:“ UTF-8”

文件在Android Studio中以错误的编码方式加载:“ UTF-8”

java encoding utf-8 syntax-error android-studio

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

Gradle 或 Groovy - 如何将 URL 转换为文件?

在 Gradle 中,我有一个文件存储在 Internet 上,我想访问它。但我不知道如何在 Gradle 中将URLa转换为 a File。我需要将 url 转换为文件,以便我可以将其作为文件传递给任务。这是我到目前为止所拥有的:

allprojects {
    afterEvaluate { project ->
      String file = new URL('http://techslides.com/demos/samples/sample.json').file
    }
}
Run Code Online (Sandbox Code Playgroud)

这绝对不是我想要的。文件变量最终是:demos/samples/sample.json所以看起来它只是从 url 本身获取路径。

我需要将实际sample.json 存储在一个File对象中。如果可能的话,我还希望不必将文件写入本地存储,其他人可以访问它作为安全文件。

groovy gradle

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

Android中的Preferences和SharedPreferences有什么区别?

java.util.prefs.Preferences和 之间有什么区别android.content.SharedPreferences?看起来它们是用于类似的东西 - 你可以通过两个键中的键来放置和获取值,但是Preferences看起来更难以且更多地属于操作系统而不是应用程序.

android sharedpreferences android-sharedpreferences

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

Gradle 可选 @Input

如何为任务提供可选属性?

class CustomTask extends DefaultTask {

    @Input
    Closure preconfig

    // ...    
}
Run Code Online (Sandbox Code Playgroud)

这种方式要求用户在preconfig使用CustomTask类型定义任务时提供闭包作为参数。

除了定义设置属性的方法之外,如何实现声明式方式?

class CustomTask extends DefaultTask {

    @Input
    Closure preconfig

    def preconfig(Closure c){
        this.preconfig = c
    }

    // ...   
}
Run Code Online (Sandbox Code Playgroud)

gradle build.gradle gradle-plugin gradle-task

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

Gradle 缺少动态任务

我有一个已宣布的任务:

tasks.getByName('connectedAndroidTest').finalizedBy 'archiveReports'
Run Code Online (Sandbox Code Playgroud)

但是当我尝试构建项目时,它告诉我:

Caused by: org.gradle.api.UnknownTaskException: Task with name 'connectedAndroidTest' not found in project ':TestProject'.
        at org.gradle.api.internal.tasks.DefaultTaskCollection.createNotFoundException(DefaultTaskCollection.java:80)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.getByName(DefaultNamedDomainObjectCollection.java:229)
        at org.gradle.api.internal.tasks.DefaultTaskCollection.getByName(DefaultTaskCollection.java:31)
        at org.gradle.api.tasks.TaskCollection$getByName.call(Unknown Source)
        at build_6w8zk6ic8wtqwlvwwubix2jc3.run(/path/to/build.gradle:84)
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
        ... 58 more
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为其他方式:

tasks.connectedAndroidTest.finalizedBy 'archiveReports'
Run Code Online (Sandbox Code Playgroud)

这个问题非常相似:

Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'connectedAndroidTest' for task set.
        at org.gradle.internal.metaobject.AbstractDynamicObject.getMissingProperty(AbstractDynamicObject.java:92)
        at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:62)
        at org.gradle.api.internal.tasks.DefaultTaskContainer_Decorated.getProperty(Unknown Source)
        at build_6w8zk6ic8wtqwlvwwubix2jc3.run(/path/to/build.gradle:84)
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
        ... 58 more
Run Code Online (Sandbox Code Playgroud)

我知道这个任务是由于风格而动态生成的,但是如何向动态任务添加终结器?

finalizer gradle build.gradle android-gradle-plugin gradle-task

5
推荐指数
0
解决办法
832
查看次数

我可以在 Intellij Idea 中在包或文件级别设置断点吗?

我不确定一堆接口使用的实现。Idea中是否可以在包/类文件/外部库上设置断点?

java debugging breakpoints intellij-idea

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

在单元测试中禁用JMS使用bean

我构建了一个接收JMS消息(@JmsListener)的Spring应用程序.在开发期间,我想将一些消息发送到侦听器侦听的JMS队列,因此我编写了一个发送一些消息的单元测试(JmsTemplate).在这个单元测试中,我使用@SpringBootTest@RunWith(SpringRunner.class)加载应用程序上下文(数据源的bean等).

但是,当单元测试开始时,它还会加载jms监听器bean,它直接开始使用我的新消息.

我想在此测试场景中禁用此jms侦听器bean,以便将消息添加到队列中.然后,我可以启动主应用程序并观察它们被消耗.

我该怎么做呢?

我想我也可以问一下如何禁用bean.

提前致谢.

java spring unit-testing jms javabeans

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