从 gradle spring 项目中的依赖 jar 中排除配置文件(.xml 和包)
exclude the configuration file (.xml and package) from dependency jar in gradle spring project
在我的 spring 项目中,我们使用的 Web 依赖项包含配置 applicationContext.xml
和 security-config.xml
。我必须在我的应用程序中更改它们,我该如何实现。
我期待这样
compile (librariesdependencyname) {
exclude ('applicationContext.xml')
exclude ('common-security-config.xml')
}
如果您的团队正在处理罐子。只要求他们创建新版本并且没有此配置和资源文件
或
您可以修改上下文加载器的位置和模式,如下所示
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml,classpath*:/**/*-config.xml</param-value>
</context-param>
有关项目设置的更多信息将有助于提供更准确的建议。
可以有多种实现方式。
假设你有以下
- 库提到了 xml 个文件
- 我们想要代码而不是配置
如@Araf所述,我们可以要求团队更新库并更改配置
- 重构代码以提供自动配置文件,这样库的使用者可以选择是否通过自动加载来加载配置
- 定义您自己的 xml 文件来加载,这样它就不会加载库配置
实现https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-auto-configuration中提到的AutoConfiguration机制的一种方法
或者因为它是您自己的项目,您可以尝试多模块项目 https://www.baeldung.com/spring-boot-multiple-modules
选择加载或排除哪个包,我们可以使用@ComponentScan
https://www.baeldung.com/spring-component-scanning.
XML版本的注解应该可以用,我个人更喜欢注解,因为它会使用代码作为配置。
您可以在 gradle 中添加自定义任务,而不是添加您的 jar 编译“依赖项。将其定义为 ”something“ 依赖项。使用 访问它对象=13=]configurations."something" 。参考下面的例子
librariesdependency "<<package-librariesdependencyname>>"
jar.dependsOn 'customJar'
task customJar (type: Jar) {
archiveName = 'your-output.jar'
from zipTree(configurations.librariesdependency.singleFile)
exclude 'applicationContext.xml'
}
在我的 spring 项目中,我们使用的 Web 依赖项包含配置 applicationContext.xml
和 security-config.xml
。我必须在我的应用程序中更改它们,我该如何实现。
我期待这样
compile (librariesdependencyname) {
exclude ('applicationContext.xml')
exclude ('common-security-config.xml')
}
如果您的团队正在处理罐子。只要求他们创建新版本并且没有此配置和资源文件
或
您可以修改上下文加载器的位置和模式,如下所示
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext.xml,classpath*:/**/*-config.xml</param-value>
</context-param>
有关项目设置的更多信息将有助于提供更准确的建议。 可以有多种实现方式。
假设你有以下
- 库提到了 xml 个文件
- 我们想要代码而不是配置
如@Araf所述,我们可以要求团队更新库并更改配置
- 重构代码以提供自动配置文件,这样库的使用者可以选择是否通过自动加载来加载配置
- 定义您自己的 xml 文件来加载,这样它就不会加载库配置
实现https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-auto-configuration中提到的AutoConfiguration机制的一种方法 或者因为它是您自己的项目,您可以尝试多模块项目 https://www.baeldung.com/spring-boot-multiple-modules
选择加载或排除哪个包,我们可以使用@ComponentScan
https://www.baeldung.com/spring-component-scanning.
XML版本的注解应该可以用,我个人更喜欢注解,因为它会使用代码作为配置。
您可以在 gradle 中添加自定义任务,而不是添加您的 jar 编译“依赖项。将其定义为 ”something“ 依赖项。使用 访问它对象=13=]configurations."something" 。参考下面的例子
librariesdependency "<<package-librariesdependencyname>>"
jar.dependsOn 'customJar'
task customJar (type: Jar) {
archiveName = 'your-output.jar'
from zipTree(configurations.librariesdependency.singleFile)
exclude 'applicationContext.xml'
}