我有一个审计JPA的示例项目 . 我正在尝试将此项目迁移到spring-boot 2.0.0.RELEASE,因此我得到一个aop类的卸载类异常,项目地址:https://github.com/richardcsantana/spring-audit-sample/tree/spring-boot-2.0.0

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.richardcsantana</groupId>
<artifactId>auditsample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>audit-sample</name>
<description>Demo project using audit from spring-jpa</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.3-1102-jdbc41</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.8</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.0</version>
            <configuration>
                <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                <baseImage>java</baseImage>
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <!-- copy the service's jar file from target into the root directory
                    of the image -->
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                <serverId>docker-hub</serverId>
                <registryUrl>https://hub.docker.com/</registryUrl>
            </configuration>
        </plugin>
    </plugins>
</build>


</project>

当我运行测试或尝试运行应用程序时,它给出以下错误:

Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.NoAspectBoundException

堆栈:

java.lang.IllegalStateException:无法在org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)〜[spring-test-5.0.4.RELEASE.jar:5.0.4]中加载ApplicationContext . 发布在org.springframework.test的org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:107)〜[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] . or.s.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener)中的context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)〜[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] .java:83)〜[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:44) 〜[spring-boot-test-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]在org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:242)〜[spring-test-5.0 .4.RELEASE.jar:5.0.4.RELEASE] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)[chring-test-5.0.4.RELEASE.jar:5.0.4 .RELEASE]在org.jun.init.internal的org.springframework.test.context.junit4.SpringJUnit4ClassRunner $ 1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] .runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)[junit-4.12.jar:4.12] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)[spring-test- 5.0.4.RELEASE.jar:5.0.4.RELEASE]在org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)[spring-test-5.0.4.RELEASE.jar:5.0 . 4.RELEASE]在org.springframework.test.conte org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290)中的xt.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] )[junit-4.12.jar:4.12] org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:71)[junit-4.12.jar:4.12] at org.junit.runners.ParentRunner.runChildren(ParentRunner . java:288)[junit-4.12.jar:4.12] org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58)[junit-4.12.jar:4.12] at org.junit.runners.ParentRunner $ 2 . 评估(ParentRunner.java:268)[junit-4.12.jar:4.12] org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)[spring-test-5.0.4.RELEASE .jar:5.0.4.RELEASE]在org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE ] org.junit.runners.ParentRunner.run(ParentRunner.java:363)[junit-4.12.jar:4.12] at or or g.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] org.apache.maven.surefire.junit4 . JUnit4Provider.execute(JUnit4Provider.java:369)[surefire-junit4-2.20.1.jar:2.20.1] org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)[surefire-junit4 -2.20.1.jar:2.20.1] org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)[surefire-junit4-2.20.1.jar:2.20.1] at org . apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)[surefire-junit4-2.20.1.jar:2.20.1] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter . java:373)[surefire-booter-2.20.1.jar:2.20.1] org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)[surefire-booter-2.20.1.jar :2.20.1]在org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)[surefire-bo oter-2.20.1.jar:2.20.1]在org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)[surefire-booter-2.20.1.jar:2.20.1]引起的:java.lang.IllegalStateException:org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration.propertySourcesPlaceholderConfigurer在org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:64)上的错误处理条件〜[spring-boot -autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:109)〜[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]在org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:179)〜[spring-context-5.0.4.RELEASE .jar:5.0.4.RELEASE]在org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141)〜[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE] at org .springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:117)〜[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE] org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(在org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry的ConfigurationClassPostProcessor.java:328)~ [spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE] orP.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:273)〜[spring-context]中的ClassPostProcessor.java:233)~ [spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE] -5.0.4.RELEASE.jar:5.0.4.RELEASE]在org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)〜[spring-context-5.0.4.RELEASE.jar:5.0 . 4.RELEASE]在org.springframework.context的org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:693)〜[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE] . org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)中的support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:531)〜[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]〜 org.springframework.boot.SpringAppl上的[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]在org.springframework.boot.SpringApplication.run(SpringApplication.java:327)〜[spring]的ication.refreshContext(SpringApplication.java:388)〜[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE] -boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]在org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:138)〜[spring-boot-test-2.0.0 . RELEASE.jar:2.0.0.RELEASE] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)〜[spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE ] org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)~ [spring-test-5.0.4.RELEASE.jar:5.0.4.RELEASE] ... 28个常用帧省略by:java.lang.IllegalStateException:无法从ClassLoader [sun.misc.Launcher$AppClassLoader@6bc]内省Class [org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect] 7c054] atg.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:659)〜[spring-core-5.0.4.RELEASE.jar:5.0.4.RELEASE] org.springframework.util.ReflectionUtils.doWithMethods( ReflectionUtils.java:556)~ [spring-core-5.0.4.RELEASE.jar:5.0.4.RELEASE]在org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:541)〜[spring-core-5.0 .4.RELEASE.jar:5.0.4.RELEASE] at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:599)〜[spring-core-5.0.4.RELEASE.jar:5.0.4.RELEASE]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:728)〜[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE] org.springframework.beans.factory . org.springframework.beans.factory.support.AbstractAutowireCa上的support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:669)~ [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE] org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean中的pableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:637)〜[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE](AbstractBeanFactory.java:1489 )〜[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]在org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1007)〜[spring-beans-5.0 . 4.RELEASE.jar:5.0.4.RELEASE] at org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanTypeForNonAliasDefinition(BeanTypeRegistry.java:168)~ [spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0 .O.RELEASE] org.springframework.boot.autoconfigure.condition.BeanTypeRegistry.addBeanType(BeanTypeRegistry.java:157)~ [spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org .springframework.boot.autoconfigure.condition.BeanTypeRegistry.updateTypesIfNecessary(BeanTypeRegistry.java:207)〜[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] atorg.springframework.boot.autoconfigure.condition.BeanTypeRegistry.getNamesForType(BeanTypeRegistry.java:114)〜[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] org.springframework.boot.autoconfigure org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:266)〜[spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]在org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:197)的OnBeanCondition.java:255)~ [spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE]〜 org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:116)〜[spring-boot-autoconfigure- [spring-boot-autoconfigure-2.0.0.RELEASE.jar:2.0.0.RELEASE] 2.0.0.RELEASE.jar:2.0.0.RELEASE]在org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)〜[spring-boot-autoconfig ure-2.0.0.RELEASE.jar:2.0.0.RELEASE] ...省略了44个常见帧引起者:java.lang.CoC.DevlaredMethods0上的java.lang.NoClassDefFoundError:org / aspectj / lang / NoAspectBoundException(本机方法) )〜[na:1.8.0_151] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)~ [na:1.8.0_151] at java.lang.Class.getDeclaredMethods(Class.java:1975)~ [na :1.8.0_151]在org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:641)〜[spring-core-5.0.4.RELEASE.jar:5.0.4.RELEASE] ... 61个常用帧省略by:java.lang.ClassNotFoundException:java.net.URLClassLoader.findClass(URLClassLoader.java:381)中的org.aspectj.lang.NoAspectBoundException,java.lang.ClassLoader.loadClass中的[na:1.8.0_151](ClassLoader.java :424)〜[na:1.8.0_151] at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:335)〜[na:1.8.0_151] at java.lang.ClassLoader.loadClass(ClassLoader.java:357 )〜[na:1.8.0_151] ...省略了65个常用帧

有了这个测试类:

package com.richardcsantana;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest
@RunWith(SpringRunner.class)
public class AuditSampleApplicationTests {

    @Test
    public void contextLoads() {
    }
}