我有一个创建JCA连接器(.rar文件)的maven项目。现在,为了在我为其构建此内容的另一个项目中使用此连接器,我想导入此连接器的接口。
我是否可以以某种方式向连接器pom.xml添加一个构建目标,它只使用连接器项目中的接口(比如连接器接口)创建一个新的maven工件?
谢谢!
发布于 2013-06-06 15:20:51
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的依赖项。将其添加到connector-impl的pom.xml中
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>connector-impl</artifactId>
<version>${project.version}</version>
</dependency>如果您使用maven发布插件,请将以下代码添加到父pom:
<project>
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
</project>这样的话,当你发布的时候,maven只会询问版本1。
发布于 2013-06-06 15:33:36
尽管@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。
https://stackoverflow.com/questions/16955897
复制相似问题