I would honestly write, "I haven't done it in years." Reason being years is a time frame and when you write about something in a time frame it is usually referred to as "in" and not "for." For instance, you wouldn't write, "I haven't done the dishes for years." You would write, "I haven't done the dishes in years." Another example, "I haven't written a letter for years," should be, "I haven't written a letter in years." There are other time frames that you would use the word, "for," but in this instance, the word, "in," is better English.