我使用 maven-ejb-plugin 以标准方式为我的客户端生成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>
因此客户使用其依赖
<dependency>
<groupId>en.foo.ejb</groupId>
<artifactId>artifact-ejb</artifactId>
<version>1.0.0</version>
<type>ejb-client</type>
</dependency>
到目前为止,我有2个问题:
mvn clean install
或mvn clean deploy
安装整套ejb包装罐,所以最后我会同时安装
我希望只安装第二个,因为artifact-ejb.jar不应该安装在存储库中
(另见https://howtodoinjava.com/maven/maven-parent-child-pom-example/)
我该如何解决这些问题?
答案 0 :(得分:1)
您的artifact-ejb-client.jar
仅包含接口。在运行时,您还需要具有实现。因此,如果你想建立适当的耳朵或战争,你需要artifact-ejb-client.jar
和artifact-ejb.jar
。我想到的唯一例外是RMI通信,你可以很好地只有客户端(在主叫端)。因此,请考虑一下您是否真的希望将artifact-ejb.jar
保留在存储库之外。
如果您决定这样做,请将项目拆分为两个单独的项目,一个包含接口,另一个包含实现。 impl项目需要客户端项目作为依赖项。然后,您可以自由地构建和部署两者中的一个。
对于父poms:工件的所有父poms都需要在存储库中,否则构建将中断。如果依赖于工件,则需要解析其父pom。它不能保持“秘密”。