2

除了我的来源之外,我还需要编织一些罐子。在 Eclipse / Ant 中,执行此操作的方法是使用 inpath 选项。Ant 和 Eclipse 为以这种方式添加 jars 提供了重要的支持。IntelliJ 有类似的东西吗(我使用的是 14)?

我使用了 AspectJ Weaver 插件,但它不允许我对属于 Jars 的方法提出建议。

编辑:我用作-inpath额外的命令行参数,但是我得到编译错误,表明它无法找出 inpath jar 中任何类的基类。

Edit2:现在我没有使用 intellij 的 make,而是使用 Ant 构建输出。它并不理想,但它可以工作,并且没有太多的速度损失。

Edit3:用于-inpath 编译的罐子:spring-tx-3.2.11、spring-orm-3.2.11、spring-binding-2.3.1

从 intellij 构建的调试日志来看,这几乎适用于该 jar 中的每个类

 [Xlint:cantFindType]' @(no source information available)
/Users/dlikhten/Developer/workspaces/x/src/x-web/web/war/WEB-INF/lib/spring-binding-2.3.1.RELEASE.jar:0::0 
2014-12-10 13:28:52,992 [  23440]  DEBUG - ng.aspectj.build.AjBuilderBase - error: 'can't determine superclass of missing type javax.el.PropertyNotWritableException
when weaving type org.springframework.binding.expression.el.MapAdaptableELResolver
4

2 回答 2

3

尽管我在很大程度上喜欢 IntelliJ IDEA,但我不得不承认,每当处理 AspectJ 时我都会切换到 Eclipse,因为 IDEA 的 AspectJ 支持不是最先进的。好的,AspectJ 是一个 Eclipse 项目,因此可以预期会有很好的支持,但无论如何。

我发现在外部库上使用 inpath 的唯一方法实际上是为您的项目自定义Ajc命令行,然后添加-inpath my/external/lib.jar

Ajc 的 Java 编译器设置


更新:

这是我的小演示项目,其中包含一个方面和一个使用Apache Commons Compress 1.9的驱动程序应用程序。只需确保更改示例 ZIP 文件的路径以使其运行:

public aspect DemoAspect {
    before() : execution(public * *(..)) {
        System.out.println(thisJoinPoint);
    }
}
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException, ArchiveException {
        System.out.println("Hello world!");
        ArchiveInputStream input = new ArchiveStreamFactory().createArchiveInputStream(
            new BufferedInputStream(
                new FileInputStream("c:\\Users\\Alexander\\Downloads\\rudi.zip")
            )
        );
        ArchiveEntry entry;
        while ((entry = input.getNextEntry()) != null) {
            System.out.println(entry);
        }
    }
}

inpath上没有commons-compress-1.9.jar 的控制台输出:

如您所见,方面有效。它拦截主方法的执行。然后主方法打印“Hello world!” 以及我的示例 zip 中的 3 个文件名。

execution(void Main.main(String[]))
Hello world!
index.cgi
upload.cgi
cmd.cgi

inpath上带有commons-compress-1.9.jar 的控制台输出:

现在将外部 JAR 放在输入路径上,如屏幕截图所示。请使用完整路径! 我们现在希望看到很多来自Commons Compress的公共方法执行也被切面拦截和记录。实际上,在“Build”->“Rebuild project”之后,输出变为:

execution(void Main.main(String[]))
Hello world!
execution(ArchiveInputStream org.apache.commons.compress.archivers.ArchiveStreamFactory.createArchiveInputStream(InputStream))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes())
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes())
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes())
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(boolean org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.matches(byte[], int))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes())
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes())
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes())
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(ZipEncoding org.apache.commons.compress.archivers.zip.ZipEncodingHelper.getZipEncoding(String))
execution(ArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry())
execution(ZipArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getPlatform())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(GeneralPurposeBit org.apache.commons.compress.archivers.zip.GeneralPurposeBit.parse(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useDataDescriptor(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useUTF8ForNames(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useStrongEncryption(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useEncryption(boolean))
execution(boolean org.apache.commons.compress.archivers.zip.GeneralPurposeBit.usesUTF8ForNames())
execution(boolean org.apache.commons.compress.archivers.zip.GeneralPurposeBit.usesDataDescriptor())
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setGeneralPurposeBit(GeneralPurposeBit))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setMethod(int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(byte[] org.apache.commons.compress.archivers.zip.ZipLong.getBytes(long))
execution(long org.apache.commons.compress.archivers.zip.ZipUtil.dosToJavaTime(long))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(String org.apache.commons.compress.archivers.zip.FallbackZipEncoding.decode(byte[]))
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getPlatform())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtra(byte[]))
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.AsiExtraField.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.X7875_NewUnix.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.JarMarker.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.UnicodePathExtraField.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.UnicodeCommentExtraField.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(void org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register(Class))
execution(ZipShort org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraField.getHeaderId())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(ZipExtraField[] org.apache.commons.compress.archivers.zip.ExtraFieldUtils.parse(byte[], boolean, ExtraFieldUtils.UnparseableExtraField))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtraFields(ZipExtraField[]))
execution(ZipExtraField[] org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraFields(boolean))
execution(byte[] org.apache.commons.compress.archivers.zip.ExtraFieldUtils.mergeLocalFileDataData(ZipExtraField[]))
execution(ZipExtraField org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraField(ZipShort))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(String org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getName())
execution(ZipExtraField org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraField(ZipShort))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setSize(long))
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getMethod())
execution(ZipMethod[] org.apache.commons.compress.archivers.zip.ZipMethod.values())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getMethod())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(String org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getName())
index.cgi
execution(ArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry())
execution(ZipArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getPlatform())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(GeneralPurposeBit org.apache.commons.compress.archivers.zip.GeneralPurposeBit.parse(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useDataDescriptor(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useUTF8ForNames(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useStrongEncryption(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useEncryption(boolean))
execution(boolean org.apache.commons.compress.archivers.zip.GeneralPurposeBit.usesUTF8ForNames())
execution(boolean org.apache.commons.compress.archivers.zip.GeneralPurposeBit.usesDataDescriptor())
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setGeneralPurposeBit(GeneralPurposeBit))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setMethod(int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipUtil.dosToJavaTime(long))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(String org.apache.commons.compress.archivers.zip.FallbackZipEncoding.decode(byte[]))
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getPlatform())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtra(byte[]))
execution(ZipExtraField[] org.apache.commons.compress.archivers.zip.ExtraFieldUtils.parse(byte[], boolean, ExtraFieldUtils.UnparseableExtraField))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtraFields(ZipExtraField[]))
execution(ZipExtraField[] org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraFields(boolean))
execution(byte[] org.apache.commons.compress.archivers.zip.ExtraFieldUtils.mergeLocalFileDataData(ZipExtraField[]))
execution(ZipExtraField org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraField(ZipShort))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(String org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getName())
execution(ZipExtraField org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraField(ZipShort))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setSize(long))
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getMethod())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getMethod())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(String org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getName())
upload.cgi
execution(ArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry())
execution(ZipArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getPlatform())
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(GeneralPurposeBit org.apache.commons.compress.archivers.zip.GeneralPurposeBit.parse(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useDataDescriptor(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useUTF8ForNames(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useStrongEncryption(boolean))
execution(void org.apache.commons.compress.archivers.zip.GeneralPurposeBit.useEncryption(boolean))
execution(boolean org.apache.commons.compress.archivers.zip.GeneralPurposeBit.usesUTF8ForNames())
execution(boolean org.apache.commons.compress.archivers.zip.GeneralPurposeBit.usesDataDescriptor())
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setGeneralPurposeBit(GeneralPurposeBit))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setMethod(int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipUtil.dosToJavaTime(long))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(String org.apache.commons.compress.archivers.zip.FallbackZipEncoding.decode(byte[]))
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getPlatform())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtra(byte[]))
execution(ZipExtraField[] org.apache.commons.compress.archivers.zip.ExtraFieldUtils.parse(byte[], boolean, ExtraFieldUtils.UnparseableExtraField))
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtraFields(ZipExtraField[]))
execution(ZipExtraField[] org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraFields(boolean))
execution(byte[] org.apache.commons.compress.archivers.zip.ExtraFieldUtils.mergeLocalFileDataData(ZipExtraField[]))
execution(ZipExtraField org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraField(ZipShort))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(String org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getName())
execution(ZipExtraField org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getExtraField(ZipShort))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.hashCode())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(void org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setSize(long))
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getMethod())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(int org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getMethod())
execution(int org.apache.commons.compress.archivers.zip.ZipMethod.getCode())
execution(String org.apache.commons.compress.archivers.zip.ZipArchiveEntry.getName())
cmd.cgi
execution(ArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry())
execution(ZipArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue(byte[], int))
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[]))
execution(int org.apache.commons.compress.utils.IOUtils.readFully(InputStream, byte[], int, int))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[]))
execution(int org.apache.commons.compress.archivers.zip.ZipShort.getValue(byte[], int))
execution(boolean org.apache.commons.compress.archivers.zip.ZipLong.equals(Object))
execution(long org.apache.commons.compress.archivers.zip.ZipLong.getValue())
于 2014-11-27T11:55:20.440 回答
0

面临的问题是两倍 + 1 奖金:

  • IntelliJ 14.0.0 - 14.0.2 似乎存在编译器错误。当您在 OSX 中修改 aspectj 编译选项(如命令行参数)时,它似乎会忽略更改,直到下一次构建。所以基本上 change = 需要 2x 构建才能生效。导致我的故障排除关闭。

  • 我从 spring jar 得到的编译错误是因为我没有所有依赖项。我没有在 ant 中看到它的原因是有人使用了 -Xlint:ignore 选项,它忽略了这些错误并编织了它可以编织的任何文件,这很好,因为这些类根本没有在我们的代码中使用。

  • 看来 14.0.2 的 aspectj 增量编译器忽略了 aspectj 的命令行参数。精彩的。

于 2014-12-19T21:38:16.320 回答