在我的maven中想要创建一个jar,其中包含org.lory.ejb.commons包中唯一的编译类,如下所示:因为这些类在ejb核心项目和客户端之间很常见……
我知道你正在尝试创建一个只包含代码子集的jar文件(模块) - 但你是以非常规方式进行的。
在Maven中实现这一目标的主要方法是创建一个父项目(一个带有的maven项目) pom 打包);添加一个名为的模块 common 在哪里放置公共代码(来自您的所有代码) org.lory.ejb.commons 包);并添加其他 client 和 server 分别放置客户端和服务器代码的模块。这俩 client 和 server 模块将依赖于 common 。
pom
common
org.lory.ejb.commons
client
server
顺便说一句,请注意使用模块也更容易 - 例如。使用Eclipse,您只需创建一个带有pom包装的新Maven项目;添加maven模块(带 jar 包装);并将代码移动到正确的模块
jar
的 编辑 强> 带包装的项目 pom 构建时不要生成jar文件。这就是你有错误的原因: 找不到工件lory-ejb-commons:lory-ejb-commons: 的 罐 强> :0.0.1-快照 。 (那是因为一个 pom 项目很特别,不打算包含代码;所以你应该没有代码直接在其中)。
您应该为您的父项目命名,例如。 lory-ejb-parent ,创建另一个名为的模块 common 在它下面,并将共同代码放在那里;并拥有 lory-ejb 模块取决于 common 模块。
lory-ejb-parent
lory-ejb
此外,Eclipse自动管理基于maven的项目的依赖关系,因此无需在project-> Java Build Path下更改任何内容