小编Tom*_*Lin的帖子

无法使用groovy注释中的类中定义的变量

我试图从Dropwizard示例中将一些代码从java移植到groovy.

我在java中看到,我可以使用以下代码而不会出现任何问题:

package com.example.helloworld;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Produces(MediaType.APPLICATION_JSON)
public class HelloWorldService{  

}
Run Code Online (Sandbox Code Playgroud)

但是,使用groovy编译器(1.8和2.0.6),类无法使用MediaType.APPLICATION_JSON周围的noClassFoundException进行编译

如果我更改此代码以使用实际的字符串值

@Produces('application/json')
public class HelloWorldService{  

}
Run Code Online (Sandbox Code Playgroud)

一切都很完美.

groovy解析注释的方式和java的方式有什么区别吗?

为了完整性,这是gradle项目的一部分,这是我的build.gradle(文件在src/groovy/com/example/helloworld下)

apply plugin: 'groovy'

// Set our project variables
project.ext {
    dropwizardVersion = '0.6.1'
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'com.yammer.dropwizard', name: 'dropwizard-core', version: dropwizardVersion
    groovy group: 'org.codehaus.groovy', name: 'groovy-all', version: '1.8.7'
}
Run Code Online (Sandbox Code Playgroud)

编译错误是:

引起:java.lang.RuntimeException:java.lang.ClassNotFoundException:com.sun.ws.rs.ext.RuntimeDelegateImpl ... 17更多引起:java.lang.ClassNotFoundException:com.sun.ws.rs.ext. org.gradle.api.internal.tasks.compile.TransformingClassLoader.findClass(TransformingClassLoader.java:47)中的RuntimeDelegateImpl

groovy annotations gradle

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

标签 统计

annotations ×1

gradle ×1

groovy ×1