У меня есть проект, использующий переплетение времени компиляции для @Configurable из весенних аспектов в мои классы с использованием @Configurable. Я использую Spring Tool Suite 3.7.0 и все работает, если я использую задачи gradle для сборки и запуска своего приложения. (Благодаря плагину: https://github.com/eveoh/gradle-aspectj).
Теперь я хочу также использовать природу AspectJ Eclipse. Вручную я получил это, превратив проект в AspectJ И добавив spring-sizes.jar как AspectJ inpath. Я тоже хочу сделать это с помощью градиента. Превратить проект в природу AspectJ удалось:
eclipse {
project {
buildCommand('org.eclipse.ajdt.core.ajbuilder')
natures += 'org.eclipse.ajdt.ui.ajnature'
}
Как настроить gradle, чтобы он также выполнял шаг «добавить spring-sizes.jar в качестве моего пути к входу»?
Когда я сравниваю файл .classpath, разница заключается в следующем:
<classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.web.container">
<attributes>
<attribute name="org.eclipse.ajdt.inpath.restriction" value="spring-aspects-4.1.7.RELEASE.jar"/>
<attribute name="org.eclipse.ajdt.inpath" value="org.eclipse.ajdt.inpath"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.ajdt.core.ASPECTJRT_CONTAINER"/>
(classpathentry org.eclipse.jst.j2ee.internal.web.container уже был там, но атрибуты отсутствуют)
Итак, как я могу добавить этот фрагмент в путь к классам? Я видел примеры, которые изменяют путь к классам вроде этого:
eclipseClasspath {
withXml { xmlProvider ->
def classpath = xmlProvider.asNode()
def parser = new XmlParser()
... но я всегда получаю здесь ошибку: could not find method whenConfigured() for arguments [build_52wic5gr82z6rcs33lo3ix1lk$_run_closure7_closure12_closure13@73914b82] on org.gradle.plugins.ide.eclipse.model.EclipseClasspath_Decorated@6ca18169.
Как исправить эту ошибку? Это правильный способ настроить inpath AspectJ для ручной адаптации .classpath?