Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助将第三方包装成捆绑包吗_Java_Maven_Osgi_Bundle - Fatal编程技术网

Java 需要帮助将第三方包装成捆绑包吗

Java 需要帮助将第三方包装成捆绑包吗,java,maven,osgi,bundle,Java,Maven,Osgi,Bundle,我需要在代码中使用这两个包: import org.apache.commons.validator.routines.DomainValidator; import org.apache.commons.validator.routines.InetAddressValidator; 所以我需要获取ApacheCommonsValidator 1.4.0并将其打包 为此,我创建了一个新的maven项目,只包含一个POM文件,其中POM包含以下内容: 但是,当我编译这个项目时,生成的包清单将

我需要在代码中使用这两个包:

import org.apache.commons.validator.routines.DomainValidator;

import org.apache.commons.validator.routines.InetAddressValidator;
所以我需要获取ApacheCommonsValidator 1.4.0并将其打包

为此,我创建了一个新的maven项目,只包含一个POM文件,其中POM包含以下内容:

但是,当我编译这个项目时,生成的包清单将开始导入新内容。在此处检查生成的MANIFEST.MF的导入包标记:

我希望它什么也不进口,而且是自给自足的。在使用OSGi时,我讨厌这些东西,包括第三方依赖关系非常困难:


如何使此捆绑包自包含?

Commons validator似乎已经是一个捆绑包了。
除此之外,还有一个。如果您在某个时候需要它,它可以帮助您自己进行包装。

Commons validator似乎已经是一个捆绑包了。
除此之外,还有一个。如果您在某个时候需要,可以帮助您进行自己的包装。

您唯一需要的是将此捆绑包作为maven依赖项添加到项目的pom文件中,以下是来自的依赖项片段:

另外,如果您有自己的工件库,我建议您从下载依赖项的jar,并将其添加到工件库中,例如Nexus或其他。然后将SpringSource企业包存储库添加到您的工件存储库代理存储库中

快速常见问题解答

一,。但是我可以使用commons.validator 1.4.0吗

不,您不能,apache.commons.validator当前可用的重新打包版本是1.3.1版

二,。如果我真的想使用1.4.0版,是否有解决办法


也许吧!你可以试试你的运气重新包装,这似乎是一个很好的方式来实现这一点。链接页面上的帖子似乎试图创建一个包来包装您的apache.commons.validator-1.4.0.jar。

您唯一需要的是将此包作为maven依赖项添加到项目的pom文件中,下面是来自:

另外,如果您有自己的工件库,我建议您从下载依赖项的jar,并将其添加到工件库中,例如Nexus或其他。然后将SpringSource企业包存储库添加到您的工件存储库代理存储库中

快速常见问题解答

一,。但是我可以使用commons.validator 1.4.0吗

不,您不能,apache.commons.validator当前可用的重新打包版本是1.3.1版

二,。如果我真的想使用1.4.0版,是否有解决办法


也许吧!你可以试试你的运气重新包装,这似乎是一个很好的方式来实现这一点。链接页面上的帖子似乎试图创建一个包来包装您的apache.commons.validator-1.4.0.jar。

只需将其添加到指令标记中,您就可以控制结果清单中导入或不导入的内容:

<Import-Package>!DontWantThisPackage</Import-Package>
顺便说一句,一些commons验证器依赖项已经是捆绑包了,所以将其嵌入捆绑包是没有意义的


为了嵌入依赖项,我建议您直接将它们添加到捆绑包依赖项中,而不是使用可传递的依赖项

您可以控制在结果清单中导入或不导入什么,只需将其添加到指令标记中:

<Import-Package>!DontWantThisPackage</Import-Package>
顺便说一句,一些commons验证器依赖项已经是捆绑包了,所以将其嵌入捆绑包是没有意义的


为了嵌入依赖项,我建议您直接将它们添加到bundle依赖项中,而不是使用可传递的依赖项

问题是,jar需要是OSGi fyed=jar+OSGi元数据,它可以重新打包。根据ApacheCommonsWiki,有这样的重新打包OSGi包,但直到版本1.3.1。SpringSource存储库似乎有可用的版本。是的,我需要的版本是1.4.0。我以前试过1.3.1,但他们错过了我使用的课程。然而,他们的源代码非常有趣,他们被迫引用直接依赖项,但他们管理可传递依赖项的方式对我来说是一种新奇的方式,我需要仔细研究一下。问题是,jar需要是OSGi fyed=jar+OSGi元数据,它包含重新打包。根据ApacheCommonsWiki,有这样的重新打包OSGi包,但直到版本1.3.1。SpringSource存储库似乎有可用的版本。是的,我需要的版本是1.4.0。我以前试过1.3.1,但他们错过了我使用的课程。然而,他们的源代码非常有趣,他们被迫引用直接依赖项,但他们管理可传递依赖项的方式对我来说是一种新奇的方式,我需要仔细研究一下。是的,我真的需要1.4.0。我试试第谷。是的,我真的需要1.4.0。我试试第谷。