我需要为我的项目导入一个软件包A。但是,导入无法解决。因此,我从所需的包中查看了导出包文件。
我正在使用Equinox,spring和maven。以下所有代码都在pom.xml文件中。
// E.D.C.B.A
!E.D.C.B.F*
!E.D.C.B.G*
!E.D.C.B.Z*
E.D.C.B*,
!*
这个问题可以缩小为两个简单的问题。
E.D.C.B*
是否包含E.D.C.B
?!*
是什么意思?这是否意味着不导出任何软件包或不导出期望指定的软件包?据我所知,我认为上面的代码意味着不导出期望指定的软件包。除了E.D.C.B*
,E.D.C.B
和E.D.C.Bbdfd
中的软件包之外,E.D.C.B.F*
中的所有软件包(如E.D.C.B.G*
和E.D.C.B.G*
)都被允许。
答案 0 :(得分:3)
回答您的问题:
我假设您正在谈论Apache Felix maven-bundle-plugin
的Export-Package
指令。如果不正确,请更具体。
E.D.C.B*
将导出软件包E.D.C.B
和子软件包。!*
,但通常意味着:not (any package)
在这种情况下,您的最终理解是正确的。
还要注意,指令是按顺序处理的,因此首先指定的排除或包含优先于随后的声明,这就是!*
实际上毫无意义的原因。