2016-07-29 1 views
1

У меня есть проект Codename One на Netbeans, используя их плагин.Codename One: Обработка аннотаций

Есть ли способ заставить его работать? Я включил его в настройках проекта и до сих пор не отображается в финальной банке.

Аннотации содержатся в библиотеках проекта. и я могу видеть, что это делается на выходе:

warning: Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.ServiceProviderProcessor' less than -source '1.8' 

Я использовал инструкции здесь: https://netbeans.org/kb/docs/java/annotations-lombok.html

Update: Я думал, что это было ясно, но, кажется, это не так. Все это использует Netba's Lookup. Предположим, у меня есть одна jar как зависимость проекта от одного интерфейса в ней, скажем, ITest. Кроме того, класс, реализующий интерфейс, например:

@ServiceProvider(service=ITest.class) 
public class Test implements ITest{ 
.. 
} 

Так в проекте Codenamone Я называю это так:

Lookup.getDefault().lookupAll(ITest.class); 

Но придумать пустой. Я знаю, что система работает так же, как в других проектах, просто портируя ее на Codename. Похоже, что он не видит аннотации в зависимостях.

+0

Непонятно, с какими проблемами вы сталкиваетесь. Можете ли вы объяснить это дальше? В чем проблема, с которой вы столкнулись? Что такое * минимальный * код, необходимый для воссоздания проблемы? – Toby

+0

Обновлено по запросу. – javydreamercsw

ответ

0

Я не знаю, будет ли это работать, и мне это очень интересно. Убедитесь, что вы создали версию проекта на Java 8, и вы запускаете поверх Java 8 для начала работы.

В прошлом подобные вещи выполнялись с использованием манипуляции с байт-кодом, например. см. this code от work done by Steve.

+0

работает от самого источника. Я вижу, что службы генерируются, но не из зависимостей. Я думаю, мне придется дублировать функциональность, чтобы заставить ее работать – javydreamercsw

+0

Мы не поддерживаем зависимости проекта. У нас есть механизм cn1lib. Имейте в виду, что если вы будете манипулировать NetBeans, мы не сможем это сделать в сборке устройств, так что взлом, который вы сделали, может работать на симуляторе, но может не работать для Android/iOS и т. Д. –

+0

Я вижу. К сожалению, мне пришлось прекратить разработку из-за того, что я использовал пакеты java.net, которые не были включены в мобильные устройства. Поэтому мне сначала придется обратиться к этой части. – javydreamercsw