Как включить AspectJ Compiler в PluginExport/Build

Мой первый вопрос: использует ли функция "Экспорт развертываемых подключаемых модулей и фрагментов" тот же универсальный сценарий сборки, что и функция экспорта продукта?

Мой основной вопрос: почему развертываемые плагины и фрагменты экспорта генерируют jar без файлов.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/,\
           .

Редактировать: если я щелкну правой кнопкой мыши по проекту и нажму "Создать файл муравья", он сгенерирует что-то вроде этого в цели @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 Compiler установлен. Если "compilerAdapter=org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter" не установлен в файле свойств, на этом этапе вместо этого будет компилятор eclipse.

После запуска этого сгенерированного buildskript (я думаю, что "Export deployable Plugin..." сделает то же самое), единственный вывод javac, который я получил: test\TestAspect.aj skipped - don't know how to handle it

1 ответ

Решение

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

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

compilerArg=-aspectpath ${bootclasspath}

bootclasspath - это переменная в сгенерированном скрипте сборки, которая содержит все эти стандартные java-файлы.

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

Другие вопросы по тегам