3
我收到一个奇怪的错误,当我尝试运行我的java spring项目的验证生命周期的maven。请注意,它使用mvn spring-boot:run
编译罚款,但是当我运行mvn clean verify
它炸毁:maven surefire验证java.lang.ClassNotFoundException
$mvn clean verify -Dsurefire.skip=true -X
...
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.209 sec <<< FAILURE! - in com.fitforger.FitForgerBackendApplicationTests
initializationError(com.fitforger.FitForgerBackendApplicationTests) Time elapsed: 0.005 sec <<< ERROR!
java.lang.NoClassDefFoundError: com/fitforger/model/GymRat
Caused by: java.lang.ClassNotFoundException: com.fitforger.model.GymRat
我可以提供具有相关性?请参阅下面的一些初始上下文。
项目结构:我的pom.xml的
+----src
+----main
| +----java
| | +----com
| | +----fitforger
| | +----controller
| | | +----GymRatController.java
| | | +----WorkoutNodeController.java
| | +----dao
| | | +----GymRatDAO.java
| | +----exception
| | | +----GymRatCreationFailure.java
| | | +----GymRatExistsException.java
| | | +----GymRatNotFound.java
| | | +----GymRatUpdateFailure.java
| | +----FitForgerBackendApplication.java
| | +----model
| | | +----FitForgerModel.java
| | | +----GymRat.java
| | | +----WorkoutAttribute.java
| | | +----WorkoutNode.java
| | | +----WorkoutNodeTypes.java
| | +----repository
| | +----CouchbaseRepository.java
| | +----FitForgerRepository.java
| +----resources
| +----application.properties
+----test
+----java
| +----com
| +----fitforger
| +----FitForgerBackendApplicationTests.java
| +----GymRatSteps.java
| +----repository
| +----CouchbaseRepositoryTest.java
+----resources
+----com
+----fitforger
+----GymRat.feature
相关位:通过执行以下解决
<build>
<resources>
<resource>
<directory>resources</directory>
<targetPath>${project.build.outputDirectory}</targetPath>
<includes>
<include>application.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.1.RELEASE</version>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.1.RELEASE</version>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<excludes>
<exclude>com.fitforger.FitForgerBackendApplicationTests</exclude>
</excludes>
<skip>${surefire.skip}</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>com.fitforger.FitForgerBackendApplicationTests</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build
这(https://github.com/spring-projects/spring-boot/issues/6254)看起来是类似于你面临的。你可以尝试用' org.springframework.boot 弹簧引导Maven的插件 <配置> EXEC 配置> ' –
GauravJ
这个工作!非常感谢...可能需要添加一般性回复,以便将其标记为正确。 –
很高兴它的工作。我已经将它作为答案。 – GauravJ