【问题标题】:POJOs generated by jsonschema2pojo have annotation which Android Studio doesn't understandjsonschema2pojo 生成的 POJO 有 Android Studio 无法理解的注解
【发布时间】:2016-08-31 00:11:58
【问题描述】:

当我通过http://www.jsonschema2pojo.org/ 生成 POJO 时,我得到如下信息:

import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

@Generated("org.jsonschema2pojo")
public class Name {
    //...
}

但是 Android Studio 无法识别javax.annotation.Generated,我必须删除两行代码

import javax.annotation.Generated;

@Generated("org.jsonschema2pojo")

形成每个 POJO,这很痛苦。有没有办法禁止 http://www.jsonschema2pojo.org/ 添加该注释?

【问题讨论】:

标签: android android-studio jsonschema2pojo java-annotations


【解决方案1】:

如果您使用的是 Gradle,请转到“app/”文件夹中的 build.gradle 文件,并在依赖项 {...} 中添加:

compile 'org.glassfish:javax.annotation:10.0-b28'

然后重建项目。那应该可以解决它。

【讨论】:

    【解决方案2】:

    您可以随时要求 Gradle 在编译前删除多余的行(自动为您):

    task cleanupPojo {
        def trim = [
            '.*org.jsonschema2pojo.*',
            'import javax.annotation.Generated;'
        ]
    
        for(def text: trim) {
            ant.replaceregexp(match: text, replace: '', flags: 's', byline: true) {
                fileset(dir: 'src', includes: '**/*.java')
            }
        }
    }
    

    以上脚本使用 Ant 的任务 replaceregexptrim 数组中删除所有出现的文本。

    Chapeau bas 持续集成! :-)

    【讨论】:

    • 我这样做了,效果很好,你节省了我的时间
    猜你喜欢
    • 1970-01-01
    • 2015-06-05
    • 2022-01-10
    • 2014-09-19
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多