我有一个maven项目,其结构如下
- Root pom.xml
- module1
- module2
Module2是一个集成测试模块,使用Spring Boot注释-
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Config.class, webEnvironment = RANDOM_PORT)
module2依赖于module1,当项目使用spring boot maven插件构建时,它被重新打包,module2在module1中找不到包;这可以通过使用分类器来解决,如下所示
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
现在的问题是,当运行module2集成测试时,无法再找到主类,我猜这是因为module2现在使用的是原始工件,而不是重新打包的工件。
目标org.springframework.boot的执行默认:sping-boot-maven-plugin4.6.18。RELEASE: repack ag e失败:无法找到主类
如何解决这个问题?在进行spring启动和集成测试时,项目结构的最佳实践是什么?
我用maven档案解决了这个问题。在根pom中,我定义:
<profiles>
<profile>
<id>skip-spring-repackaging</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>spring.repackage.skip</name>
</property>
</activation>
<modules>
<module>integration-tests</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<attach>false</attach>
</configuration>
<executions>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>spring-repackaging</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
并在应用程序pom简单:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
默认情况下,将运行重新打包。集成测试使用单独的maven命令运行,其中我传递-Dspring。重新包装跳过
。
这有一个缺点,即它只适用于单独的Maven调用。也许有我不知道的更清洁的解决方案。
我正在使用一个带有spring boot 2.0.0.rc1的多项目分级器。我的子项目之一是SpringBoot应用程序,其中包含了我的集成测试。 集成测试用WebEnvironment.random_port标记为@springboottest。由于未解析的依赖关系(在另一个子项目中声明的服务,的同级),测试失败,使用了gradle命令行,但在Eclipse IDE中成功。 如果有人有主意?如何
我的应用程序中使用了弹性城堡依赖项,我希望在pom.xml文件中排除此依赖项。即使从pom文件中删除此依赖项,它仍然出现在m2存储库文件夹中。我的应用程序是Spring-MVC 5框架,运行在Tomcat版本9上。部署时有两个不同版本的“bcprov”。我需要从pom.xml文件中排除bcprov-jdk14和bcprov-jdk15on。 下面是pom文件中的依赖关系。 我还尝试了另一个链接的排
问题:Maven在我的测试中找不到一些依赖项 在我的pom中是这样导入的。xml: 我已经试过了: mvn测试编译 使Intellij缓存无效 重启Intellij 清除. m2并重建项目
麻烦问下,我现在是已经安装好了node包的依赖,如何需要run dist,变异之后再运行,现在问题就是在run dist的时候,报上图的错误,很明显的是缺少了一个v,请问这个怎么处理呢, angular项目
我正在尝试扩展TestBase类,但找不到以下项的正确依赖关系: 我不太熟悉Maven,但在pom.xml中添加了以下依赖项: 我希望olwapi-contract依赖项包含测试包。但是,在我的Maven依赖项下,我只看到以下内容:
本文向大家介绍详解springboot解决第三方依赖jar包的问题,包括了详解springboot解决第三方依赖jar包的问题的使用技巧和注意事项,需要的朋友参考一下 公司现在用的是springboot+maven,想要把一些老的项目都改成这种框架。但是一些老的项目中有好多第三方的jar包或者是自己的jar包,maven库上没有。最初的解决方案是一个个的deploy到maven库上,但是遇到太多的