我有一个创建JCA连接器(.rar文件)的maven项目。现在要在另一个项目中使用这个连接器我构建这个东西,我想导入连接器的接口。
我可以以某种方式向连接器pom.xml添加构建目标,它只使用连接器项目中的接口(比如连接器接口)创建一个新的maven工件吗?
谢谢!
答案 0 :(得分:5)
Maven有一个强有力的规则,即1个项目 - > 1个神器。我建议拆分你的项目:
connector
+ pom.xml
++ connector-interfaces
+++ pom.xml
++ connector-impl
+++ pom.xml
连接器的pom.xml包含2个模块:
<modules>
<module>connector-interfaces</module>
<module>connector-impl</module>
</modules>
在模块connector-impl
中,您需要在connector-interfaces
上添加依赖项。在pom.xml
的{{1}}中添加:
connector-impl
如果您使用maven发布插件,请将其添加到父pom:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>connector-impl</artifactId>
<version>${project.version}</version>
</dependency>
这样,maven只会在你发布时要求版本1。
答案 1 :(得分:1)
尽管@WimDeblauwe建议采用最佳实践,但最好按照自己的方式进行,但还有另一种方法可以实现这一目标。可以使用assembly plugin来执行此操作。通常它意味着将整个项目打包在一个jar中,但它也可以用来创建类的子集并从中创建一个jar。
虽然这可能有点棘手。为此,您可能需要创建自定义描述符并引用this documentation以查看如何格式化描述符文件。以下是如何指向自定义描述符的文档中的示例:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/src.xml</descriptor>
</descriptors>
</configuration>
[...]
</project>
在src.xml
文件中,您需要<excludes>
除接口外的所有类,并将<includeDependencies>
设置为false。