我刚开始使用Spring Boot开发一个新项目,我正试图抓住它。我正在使用Spring Tool Suite,它为我创建了一个Spring Boot项目,并加载了一些依赖项,我知道我还需要进一步了解它(特别是Spring Batch和Spring Data)
这是我的pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</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-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- JDBC driver -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>
</dependencies>
我一直在阅读参考文档,并知道我在某个时候需要邮件,所以我将其添加到我的application.properties
文件中:
spring.mail.host=my.mail.host
然后我尝试使用mvn package
构建应用程序,但它在测试中引发了错误。测试包括以下内容:
package its.idcard.batch;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class IdCardBatchApplicationTests {
@Test
public void contextLoads() {
}
}
所以它所做的只是尝试加载应用程序上下文,但它在org.springframework.mail.javamail.JavaMailSenderImpl上的ClassNotFoundException失败。
我知道这是一个纯粹的测试问题,因为在添加一些Spring Data的东西,并在maven中跳过测试后,我的存根应用程序按预期运行(并查看生成的jar,我可以看到那个春天 - context-support-4.3.4-RELEASE.jar存在,包含违规类),因此它似乎是测试中的类路径问题,但我很难过。如果我在属性文件中注释掉spring.mail.host
行,则测试运行没有问题。
任何想法都将不胜感激。
答案 0 :(得分:0)
我认为我在maven资源库中出现的问题似乎是腐败的jar文件。我决定在我的配置类中手动创建MailSender
bean以查看它是否有帮助,但Eclipse标记了未找到的类,即使包含它的jar在maven依赖项中。然后我从命令行尝试了mvn compile
,这给了我一个更有用的错误,指示了腐败的jar,所以我从我的本地存储库中删除了有问题的jar并让maven重新下载它们,现在我没有更长时间在上面的配置中得到错误。
希望这有助于其他人。