jsonschema2pojo 生成的 POJO 有 Android Studio 无法理解的注解
Posted
技术标签:
【中文标题】jsonschema2pojo 生成的 POJO 有 Android Studio 无法理解的注解【英文标题】:POJOs generated by jsonschema2pojo have annotation which Android Studio doesn't understand 【发布时间】: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/ 添加该注释?
【问题讨论】:
您是否在 Grandle 中添加了依赖项?如果您还没有这样做,您可能想要添加javax.annotation:jsr250-api:1.0
。检查`this
我发现了类似的***.com/questions/9650808/… 和github.com/codepath/android_guides/wiki/…。
那么,您的问题解决了吗?
让我们在下一个版本中删除它:github.com/joelittlejohn/jsonschema2pojo/issues/577
【参考方案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 的任务 replaceregexp 从 trim
数组中删除所有出现的文本。
Chapeau bas 持续集成! :-)
【讨论】:
我这样做了,效果很好,你节省了我的时间以上是关于jsonschema2pojo 生成的 POJO 有 Android Studio 无法理解的注解的主要内容,如果未能解决你的问题,请参考以下文章
JsonSchema2Pojo,出生日期使用类型编号生成,我正在尝试以整数形式传递值
jsonschema2pojo maven插件不会生成Java类
错误:警告:忽略匿名内部类的 InnerClasses 属性错误:(org.jsonschema2pojo.gradle。)