从 Spring Boot jar 中排除 data.sql
Posted
技术标签:
【中文标题】从 Spring Boot jar 中排除 data.sql【英文标题】:exclude data.sql from Spring boot jar 【发布时间】:2018-02-16 19:01:36 【问题描述】:我正在尝试从 Spring Boot 应用程序 jar 中排除我的 data.sql 和 schema.sql。
到目前为止,我已经尝试了几个选项,但它们似乎都不起作用。这是我的 POM 配置。
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>data.sql</exclude>
<exclude>schema.sql</exclude>
</excludes>
</resource>
</resources>
</build>
</profile>
</profiles>
【问题讨论】:
试试Spring Boot 默认启用它并从标准位置 schema.sql 和 data.sql 加载 SQL。如果你想禁用它,你可以尝试,
spring.datasource.initialize=false
在 application.properties 中,或者如果您想更改默认方案或数据脚本位置,您可以使用,
spring.datasource.schema=
spring.datasource.data=
【讨论】:
嗨@mrt 我尝试了你的解决方案,我得到一个错误 [/../../../sql/schema.sql] 已被规范化为 [null] 这是无效的。 【参考方案2】:你可以在你的测试方法上写这个注解
@TestPropertySource(locations = "classpath:application-test.properties")
你的 application-test.properties 应该有这样的东西
spring.datasource.data=classpath:/database/seed.sql
【讨论】:
以上是关于从 Spring Boot jar 中排除 data.sql的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 排除属性文件并在执行时将其提供给 jar
spring boot使用gradle打包怎么样排除指定jar包
spring boot使用gradle打包怎么样排除指定jar包