2014-10-06 5 views
0

Мой первый вопрос: использует ли функция «Экспорт развертываемых подключаемых модулей и фрагментов» тот же общий сценарий сборки, что и функция экспорта продукта?Как включить AspectJ Compiler в PluginExport/Build

Мой главный вопрос: Почему в развертываемых плагинах и фрагментах экспорта создается банка без файлов .class?

В моем проекте мы используем ткачество времени загрузки, а после успешного экспорта проекта плетение не применяется. Причина в том, что мои экспортированные плагины aspectj не имеют .class-файлов.

После долгих исследований способ, которым нужно управлять аспектом, является определение адаптера компилятора AspectJ. Кажется, что этот компилятор загружен и выполнен, но в результате нет .class-файлов.

У кого-то есть идея, что не хватает?

build.properties:

compilerAdapter=org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter 
sourceFileExtensions=*.java, *.aj 
source.. = src/ 
output.. = bin/ 
bin.includes = META-INF/,\ 
      . 

Edit: Если я rightklick на проекте, если нажать "Сформировать Ant файл" он генерирует н, как это в цель @dot:

<javac destdir="${build.result.folder}/@dot" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bundleBootClasspath}" source="${bundleJavacSource}" target="${bundleJavacTarget}" compiler="org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter"  > 
     <compilerarg line="${compilerArg}" compiler="${build.compiler}"/> 
     <classpath refid="@dot.classpath" /> 
     <src path="src/"   /> 
     <exclude name="META-INF/MANIFEST.MF  ."   /> 
     <compilerarg value="@${basedir}/javaCompiler...args" compiler="org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter"   /> 
     <compilerarg line="-log &apos;${build.result.folder}/@dot${logExtension}&apos;" compiler="org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter"   /> 
    </javac> 

Я бы сказал, что это выглядит правильно, установлен AJDT-компилятор. Если «compilerAdapter = org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter» не задано в файле свойств в этот момент, вместо этого будет компилятор eclipse.

После запуска этого сгенерированный buildskript (я думаю, «Экспорт развертываемых плагин ...» будет делать то же самое) единственный выход Javac я получил это: test\TestAspect.aj skipped - don't know how to handle it

ответ

1

Я нашел решение этой проблемы. Кажется, AspectJ Compiler не запускается. После помещения файла Dummy.java в src/AspectJ компилятор пытается скомпилировать все * .aj-файлы. Без Dummy.java это не так!

После этого шага я увидел больше записей javac. И я видел jre/lib .. *. Jars, где отсутствует в пути к классам цели. Поэтому я добавил в build.properties Файл:

compilerArg=-aspectpath ${bootclasspath} 

является загрузочного пути к классам переменной в генерируемый сценарий сборки, который содержит все эти стандартные Java банки.

Это странное поведение заняло у меня много времени, надеюсь, что кто-то выиграет от этого.