And*_*rea 2 testing groovy gradle jenkins
我在Groovy中有一个很小的应用程序.目前我可以在命令行上测试它,但我需要将它与Jenkins服务器集成.因此,我曾考虑将其与Gradle集成,以Jenkins可以读取的标准格式生成测试输出.(请考虑一下我是Groovy,Gradle,Jenkins和JVM环境的新手).
目前,我所有的测试都在一个MyTest扩展的类中GroovyTestCase.我可以用一个像bash这样的小脚本来运行它
#! /bin/bash
DIR=$( cd "$( dirname "$0" )" && pwd )
LIBS="$DIR/lib/*"
groovy -cp "$LIBS" path/to/MyTest.groovy
Run Code Online (Sandbox Code Playgroud)
在这种布局中有很多我不喜欢的东西:
lib目录是一个好习惯 - 可能不是.Gradle似乎正是我需要的工具.但是我发现的所有文档都假定了Java,Ant,Maven和整个生态系统的先前知识.
创建有效的Gradle项目的基本步骤是什么?
我按照此处的建议重新组织了目录结构,但我不明白如何声明依赖项.例如,使用此build.gradle
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.0'
runtime group: 'org.apache.log4j', name: 'log4j', version: '1.2.0'
}
Run Code Online (Sandbox Code Playgroud)
我得到了错误
unable to resolve class org.apache.log4j.Level
@ line 5, column 1.
import org.apache.log4j.Level
^
Run Code Online (Sandbox Code Playgroud)
如果我将存储库更改为
repositories {
mavenCentral()
flatDir { dirs 'lib' }
}
Run Code Online (Sandbox Code Playgroud)
获得log4j从我的lib目录,我得到
A problem occurred evaluating root project 'alfred'.
Cause: Could not find method flatDir() for arguments [build_3urmo05tgpv3e97u7h8ij47i3$_run_closure1_closure3@64c7f7c4] on root project 'alfred'.
Run Code Online (Sandbox Code Playgroud)
当前的问题是您需要将log4j作为编译时依赖项导入.
修复是改变
runtime group: 'org.apache.log4j', name: 'log4j', version: '1.2.0'
Run Code Online (Sandbox Code Playgroud)
至
compile group: 'org.apache.log4j', name: 'log4j', version: '1.2.0'
Run Code Online (Sandbox Code Playgroud)
基本上,运行时依赖性使代码在运行时可用(用于反射,传递依赖等),但不能在编译时使用.如果你正在编译log4j,你需要编译时间.
编译时可用的所有内容在运行时自动可用.
接下来要做的就是为maven风格的依赖项使用terser语法.
group: 'org.apache.log4j', name: 'log4j', version: '1.2.0'
Run Code Online (Sandbox Code Playgroud)
可以表达为 'org.apache.log4j:log4j:1.2.0'
和
group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.0'
Run Code Online (Sandbox Code Playgroud)
可以表达为 'org.codehaus.groovy:groovy:1.8.0'
把它们放在一起,你的build.gradle文件应如下所示:
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
groovy 'org.codehaus.groovy:groovy:1.8.0'
compile 'org.apache.log4j:log4j:1.2.0'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1602 次 |
| 最近记录: |