Java maven安装如何安装和部署*仅*ejb客户端
我使用maven ejb插件以标准方式为我的客户机生成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
<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>