And*_*rea 3 groovy classpath gradle
我正在尝试将一个简单的Groovy项目移动到Gradle.我几乎能够配置项目,但我不知道如何处理外部资源.
基本上,我的应用程序需要访问JSON中的配置文件.在转移到Gradle之前,我曾经在命令行上传递此JSON文件的位置.我创建了一个简单的bash脚本来调用具有正确资源路径的主类.
使用Gradle,如果我理解正确,我应该能够将这个文件移动到src/main/resources/Groovy类中以某种方式提供它.问题是:怎么样?
编辑
如果我理解正确,资源应该在构建的JAR中结束.我的目标结构就像
src
main
groovy
orgName
packageName
source.groovy
resources
orgName
packageName
config.json
Run Code Online (Sandbox Code Playgroud)
但是我没有看到在build目录中生成的packageName.jar中的资源
我敲了一个简单的例子......鉴于这个目录结构:
.
|-- src
| |-- main
| |-- groovy
| | \-- org
| | |-- Test.groovy
| \-- resources
| \-- config.json
\-- build.gradle
Run Code Online (Sandbox Code Playgroud)
在哪里Test.groovy:
package org
import groovy.json.*
public class Test {
static main( args ) {
def slurper = new JsonSlurper()
def config = slurper.parseText( Test.class.getResource( '/config.json' ).text )
println "Args were $args, config is $config"
}
}
Run Code Online (Sandbox Code Playgroud)
config.json 是:
{
"data": true
}
Run Code Online (Sandbox Code Playgroud)
并build.gradle是:
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
groovy 'org.codehaus.groovy:groovy-all:2.0.0'
}
task runTest ( dependsOn: 'classes', type: JavaExec ) {
main = 'org.Test'
classpath = sourceSets.main.runtimeClasspath
args 'ARG1'
}
Run Code Online (Sandbox Code Playgroud)
你应该只能运行gradle runTest它应该工作...
| 归档时间: |
|
| 查看次数: |
6788 次 |
| 最近记录: |