java - 如何将spring XD与其他框架结合起来?

标签 java spring maven spring-xd

我正在尝试利用另一个专有的 Java 框架编写一个 spring xd 模块。 spring xd 和这个专有框架都要求我继承它们的父 POM,这显然是不可能的。

我的解决方法的想法是找出 Spring XD 父 pom 的作用,并将其或多或少地放入我的层次结构中的另一个 pom 中。我如何获得这个 XD 父 pom?或者还有更好的方法吗?

最佳答案

您说得对,Maven POM 中不支持“多重继承”。您也无法控制 Spring XD 或其他专有框架的代码,因此您无法更改一个 pom.xml 以从另一个继承。

一种可能的解决方法是将您的项目构建为多模块项目,其中一个模块继承自 Spring XD 的 POM,另一个模块继承自其他框架的 POM。然后,您可能会有第三个模块,该模块依赖于前两个模块,它将整个项目结合在一起形成一个可交付成果。

MyProject
|-- MySpringXDIntegration
|   `-- pom.xml inherits from Spring XD
|-- MyProprietaryFrameworkIntegration
|   `-- pom.xml inherits from proprietary framework
`-- MyApplication
    `-- pom.xml inherits from neither Spring XD nor proprietary framework
        depends on MySpringXDIntegration
        depends on MyProprietaryFrameworkIntegration

如果这种项目结构由于某些其他原因而不够充分,则另一种解决方法是“内联”两个父 POM 之一的相关部分。 Spring XD 父 pom.xml 可见 here 。对于专有框架,如果源代码已经给你,那么你可以在那里查看。如果没有,那么您可以简单地使用 jar xf 解压该框架的 jar 并查找捆绑在其中的 pom.xml。我建议确定 2 个 pom.xml 文件中哪一个较大。从较大的 pom.xml 继承,然后通过将较小的部分复制粘贴到您自己的 pom.xml 中来内联较小的相关位。

准确了解父 POM 的作用的一种方法是创建一个继承自它的虚拟项目,然后运行 ​​mvn help: effective-pom。如果父 POM 已经拥有自己的深层继承链,这尤其有用。

关于java - 如何将spring XD与其他框架结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531990/

相关文章:

java - 按修饰符对包含方法的数组进行排序

java - Spring SimpleJdbcCall 返回错误值

java - Maven 项目中缺少 Artifact ?

java - ShortBuffer.capacity 是否与其大小或长度相同

java - 如何在JAVA中的lambda函数中使用循环?

java - ItemReader reader() 无限循环

maven - Bulid.war 文件在 intellij IDEA 中使用不同的 application.properties 文件(Maven)

java - NoSuchMethodError :registerAutoProxyCreatorIfNecessary(ParserContext;Object;) exception with Spring config 错误

java - 如何使用 Apache Calcite 将数据插入 Excel 表?

java - 如何在其他模块中使用 gradle 子模块作为库?