iajc не может соткать аспекты из фляги, но следует из файлов классов - PullRequest
1 голос
/ 12 августа 2011

Итак, я определил задачу iajc для своего проекта, которая прекрасно выполняет объявления типов, затем есть отдельная задача jar, которая создает файл project.jar.

Затем есть задача iajc для теста junittarget, эта задача ссылается на project.jar с целью объединения его ITD в тестовые классы, например, так:

<aspectpath>
<pathelement path="${dist}/project.jar"/>
<fileset dir="${lib.aspect}">
    <include name="**/*.jar" />
    <include name="**/*.zip" />
</fileset>
</aspectpath>

Это не работает - компилятор выдает ошибки типа class "com....Foo" has to implement method doThings() defined in interface Bar

ТогдаЯ изменяю <aspectpath> на это:

<aspectpath>
<pathelement location="${build.dir}"/>
<fileset dir="${lib.aspect}">
    <include name="**/*.jar" />
    <include name="**/*.zip" />
</fileset>
</aspectpath>

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

Тогда я обнаружу, что если я использую *Опция 1017 * вместо destdir в моей задаче iajc, тогда этот jar можно использовать в <aspectpath>.

Итак, вопрос и комментарий:

Q.есть ли какой-нибудь параметр, который заставил бы его работать с обычной задачей <jar>?

C.тот факт, что я должен использовать outjar, вообще не задокументирован - упоминается возможность вывода jar, но нигде не говорится, что это единственный способ создать jar, который будет работать.

...