Marian Paździoch
Marian Paździoch

Reputation: 9113

POJOs generated by jsonschema2pojo have annotation which Android Studio doesn't understand

When I generate POJOs via http://www.jsonschema2pojo.org/ I get something like this:

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

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

But Android Studio does not recognize javax.annotation.Generated and I have to remove two lines of code

import javax.annotation.Generated;

and

@Generated("org.jsonschema2pojo")

form every POJO and this is a pain. Is there a way to suppress http://www.jsonschema2pojo.org/ from adding that annotation?

Upvotes: 8

Views: 4736

Answers (3)

SatyaRajC
SatyaRajC

Reputation: 51

Upvotes: 0

Tomasz Dzieniak
Tomasz Dzieniak

Reputation: 2915

You can always ask Gradle to remove redundant lines before compilation (automatically for you):

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')
        }
    }
}

Above script uses Ant's task replaceregexp to remove all occurrences of texts from trim array.

Chapeau bas continuous integration! :-)

Upvotes: 6

Lalo
Lalo

Reputation: 118

If you are using Gradle, go to your build.gradle file inside your 'app/' folder, and inside dependencies {...} add:

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

Then rebuild the project. That should fix it.

Upvotes: 8

Related Questions