1

У меня есть проект с использованием компиляции во времени для @Configurable из весенних аспектов в мои классы с помощью @Configurable. Я использую Spring Tool Suite 3.7.0 и все работает, если я использую задачи градации для создания и запуска приложения. (Благодаря плагину: https://github.com/eveoh/gradle-aspectj).Как установить .classpath в STS (затмение) с помощью gradle для AspectJ и весенних аспектов

Теперь я хочу использовать также природу AspectJ Eclipse. Вручную я получил этот запуск, превратив проект в AspectJ И добавив spring-aspects.jar как AspectJ inpath. Я хочу сделать это и по градле. Чтобы превратить проект в AspectJ природы стало возможным благодаря:

eclipse { 
    project { 
     buildCommand('org.eclipse.ajdt.core.ajbuilder') 
     natures += 'org.eclipse.ajdt.ui.ajnature' 
} 

Как настроить Gradle, что это также сделать шаг «добавить пружинный aspects.jar как мой inpath»?

Когда я сравниваю файл .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 уже был там, но атрибуты отсутствуют)

Итак, как я могу добавить это, перекодированное в classpath? Я видел examples, которые изменяющее путь к классам, как это:

eclipseClasspath { 
    withXml { xmlProvider -> 
     def classpath = xmlProvider.asNode() 
     def parser = new XmlParser() 

... но я всегда получаю ошибку здесь: could not find method whenConfigured() for arguments [bu[email protected]73914b82] on [email protected]6ca18169. Как исправить эту ошибку? Это правильный способ настроить AspectJ inpath для адаптации .classpath вручную?

+0

Это ядро ​​Gradle вопрос ... Поинтересуйтесь Gradle людей прямо: https://discuss.gradle.org/ – aboyko

+0

Спасибо @ aboyko. К счастью, теперь это удалось решить. – timguy

ответ

1

Наконец-то я нашел решение, возможно, полезное для других. Чтобы создать именованные .classpath фрагмент кода добавьте следующую строку в build.gradle

eclipse { 
    classpath { 
    file { 
     withXml { 

      def xmlparser = new XmlParser() 

      def node = it.asNode()    
      node.findAll{it['@path'] == 'org.eclipse.jst.j2ee.internal.web.container'}.each { 
       println it; 
       def attributes = xmlparser.createNode(it, 'attributes', [:]) 
       xmlparser.createNode(attributes, 'attribute', [name: 'org.eclipse.ajdt.inpath.restriction', value: 'spring-aspects-4.1.7.RELEASE.jar']); 
       xmlparser.createNode(attributes, 'attribute', [name: 'org.eclipse.ajdt.inpath', value: 'org.eclipse.ajdt.inpath']); 
... 

 Смежные вопросы

  • Нет связанных вопросов^_^