首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从maven project中导出接口作为新工件

如何从maven project中导出接口作为新工件
EN

Stack Overflow用户
提问于 2013-06-06 15:14:12
回答 2查看 1.5K关注 0票数 1

我有一个创建JCA连接器(.rar文件)的maven项目。现在,为了在我为其构建此内容的另一个项目中使用此连接器,我想导入此连接器的接口。

我是否可以以某种方式向连接器pom.xml添加一个构建目标,它只使用连接器项目中的接口(比如连接器接口)创建一个新的maven工件?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-06 15:20:51

Maven有一个很强的规则,那就是1项目-> 1工件。我建议拆分你的项目:

代码语言:javascript
复制
connector
+ pom.xml
++ connector-interfaces
+++ pom.xml
++ connector-impl
+++ pom.xml

连接器的pom.xml将包含2个模块:

代码语言:javascript
复制
<modules>
  <module>connector-interfaces</module>
  <module>connector-impl</module>
</modules>

在模块connector-impl中,您将需要添加对connector-interfaces的依赖项。将其添加到connector-implpom.xml

代码语言:javascript
复制
<dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>connector-impl</artifactId>
        <version>${project.version}</version>
</dependency>

如果您使用maven发布插件,请将以下代码添加到父pom:

代码语言:javascript
复制
<project>
  <build>
    <plugins>
        <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
                <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>

这样的话,当你发布的时候,maven只会询问版本1。

票数 5
EN

Stack Overflow用户

发布于 2013-06-06 15:33:36

尽管@WimDeblauwe建议了一个最佳实践,并且最好遵循他的方法,但还有另一种方法可以实现这一点。有一个assembly plugin可以用来做这件事。通常,它意味着将整个项目打包到一个jar中,但它也可以用来创建类的子集,并从中生成一个jar。

不过,这可能有点棘手。为此,您可能需要创建自定义描述符并引用this documentation,以了解如何格式化描述符文件。以下是文档中有关如何指向自定义描述符的示例:

代码语言:javascript
复制
<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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16955897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档