如何指定某些 java / groovy 包的日志记录级别?例如,在log4j中,它是这样完成的:
log4j.logger.com.foo.package=WARN
Run Code Online (Sandbox Code Playgroud)
因为调用gradle --debug会产生太多输出。
我希望使用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)
有更好的方法吗?
我在用:
我想用Groovy和Spock为一些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) 我的Android Studio像这样疯狂了,请帮助?
文件在Android Studio中以错误的编码方式加载:“ UTF-8”

在 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对象中。如果可能的话,我还希望不必将文件写入本地存储,其他人可以访问它作为安全文件。
java.util.prefs.Preferences和
之间有什么区别android.content.SharedPreferences?看起来它们是用于类似的东西 - 你可以通过两个键中的键来放置和获取值,但是Preferences看起来更难以且更多地属于操作系统而不是应用程序.
如何为任务提供可选属性?
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) 我有一个已宣布的任务:
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
我不确定一堆接口使用的实现。Idea中是否可以在包/类文件/外部库上设置断点?
我构建了一个接收JMS消息(@JmsListener)的Spring应用程序.在开发期间,我想将一些消息发送到侦听器侦听的JMS队列,因此我编写了一个发送一些消息的单元测试(JmsTemplate).在这个单元测试中,我使用@SpringBootTest和@RunWith(SpringRunner.class)加载应用程序上下文(数据源的bean等).
但是,当单元测试开始时,它还会加载jms监听器bean,它直接开始使用我的新消息.
我想在此测试场景中禁用此jms侦听器bean,以便将消息添加到队列中.然后,我可以启动主应用程序并观察它们被消耗.
我该怎么做呢?
我想我也可以问一下如何禁用bean.
提前致谢.
gradle ×5
java ×5
groovy ×3
android ×2
build.gradle ×2
gradle-task ×2
breakpoints ×1
checksum ×1
debugging ×1
directory ×1
encoding ×1
finalizer ×1
javabeans ×1
jms ×1
logging ×1
md5 ×1
slf4j ×1
spock ×1
spring ×1
syntax-error ×1
unit-testing ×1
utf-8 ×1