Java maven安装如何安装和部署*仅*ejb客户端

Java maven安装如何安装和部署*仅*ejb客户端,java,maven,ejb,Java,Maven,Ejb,我使用maven ejb插件以标准方式为我的客户机生成ejb客户机 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <version>2.3</version> <configuration> <ejbVer

我使用maven ejb插件以标准方式为我的客户机生成ejb客户机

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <ejbVersion>3.0</ejbVersion>
        <generateClient>true</generateClient>
    </configuration>
</plugin>

org.apache.maven.plugins
)


如何解决这些问题?

您的
工件ejb客户端。jar
只包含接口。在运行时,还需要实现。因此,如果您想构建一个合适的ear或war,您需要
artifactejbclient.jar
artifactejb.jar
。我想到的唯一例外是RMI通信,在这种通信中,只有客户端(在呼叫端)是可以接受的。因此,考虑一下您是否真的希望将
工件ejb.jar
保留在存储库之外

如果您决定这样做,请将项目分成两个独立的项目,一个包含接口,另一个包含实现。impl项目需要客户端项目作为依赖项。然后,您可以自由地构建和部署这两种方法中的一种


对于父POM:工件的所有父POM都需要在存储库中,否则构建将中断。如果您依赖于工件,则需要解析其父pom。它不能“保密”。

这是默认的保密方式。我认为安装
工件ejb.jar没有任何问题?真正的问题是什么?除此之外,依赖项也在
artifact ejb客户端中
此外,您需要在依赖项使用中提供分类器…这似乎是个问题..>我认为安装artifact-ejb.jar没有任何问题?真正的问题是什么?可能是因为您正在将所有业务逻辑类安装到存储库中。关于父pom,这毫无意义,问题是“mvn干净安装”安装所有子模块,这不是期望的效果“子模块”是什么意思?你有一个多模块的项目吗?通常,多模块项目是作为一个整体构建和安装的。如果您不想这样,请考虑将其拆分。在Nexus/Artifactory中,只有在其父pom和依赖项也存在的情况下,工件才有用(作为其他项目的依赖项)。是的,我有一个带有子模块的ear项目,这在mavenI中是一种常见做法。我并不批评您的多模块项目。但是如果你有一个,你通常会构建、安装和部署整个系统。您可以构建它的一部分,(例如,在中间的命令),但是您需要确保所有的东西都是一致的(即,如果您部署了一个工件,也可以部署它的依赖项及其父POM)。
<dependency>
    <groupId>en.foo.ejb</groupId>
    <artifactId>artifact-ejb</artifactId>
    <version>1.0.0</version>
    <type>ejb-client</type>         
</dependency>