Как изменить путь к классу компиляции DSLD в Eclipse - PullRequest
2 голосов
/ 28 декабря 2011

Я хотел бы сделать некоторый импорт моих собственных классов для использования внутри скрипта DSLD, но компиляция DSLD, похоже, не использует classpath проекта - операторы импорта нарушают компиляцию, и Class.forName выбрасывает класс not found исключение. Есть ли способ поместить пользовательские jar-файлы в путь к классам DSLD, чтобы я мог использовать свои собственные классы внутри блоков распределения? Я использую Eclipse 3.7 и последний плагин Groovy (2.6.0)

Ответы [ 2 ]

1 голос
/ 06 сентября 2013

Вы можете просто передать строку с полностью определенным именем класса и, если она находится в пути к классам проектов, где оценивается DSLD, то она будет работать.Это описано здесь groovy-eclipse DSLDs

Некоторые тонкости в ссылках java.lang.Class

Даже если сценарий DSLD редактируется в контекстеваш проект, скрипт на самом деле загружается Groovy-Eclipse.Таким образом, путь к классу времени выполнения сценария соответствует пути к классам Groovy-Eclipse, а не пути к классам вашего проекта.

Следовательно, вы не можете ссылаться на объекты классов для типов, определенных в вашем проекте.Однако вы можете ссылаться на объекты класса, доступные для Groovy-Eclipse.Это может сбивать с толку, так как компилятор не будет отображать ошибки компиляции, когда на типы, определенные в вашем проекте, ссылаются как на объекты класса, но он будет отображать ошибки компиляции, когда ссылаются на типы Groovy-Eclipse.Это потому, что компилятор Groovy-Eclipse работает от пути к классам проекта.Пока еще не известно, что файлы DSLD будут запускаться с другим путем к классам.

Более конкретно:

Вместо прямой ссылки на класс MyLocalType вы можете ссылаться на него как на String. Com.mycompany.MyLocalType "Стандартный JDK, GDK и все типы, определенные в groovy-all, доступны непосредственно в вашем DSLD и будут отображать ошибки компиляции.Можно ссылаться на типы в пакетах, начиная с org.eclipse.jdt.и org.codehaus.groovy.eclipse.если все ссылки полностью квалифицированыОднако это не рекомендуется, если вы действительно не знаете, что делаете.

0 голосов
/ 28 декабря 2011

Я не очень разбираюсь в материалах о DSLD, но выглядит , как будто у Groovy есть свои собственные средства для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...