小编Cra*_*son的帖子

如何使用deploy:deploy-file将OSGi包部署到Maven仓库?

我有一个OSGi包,是由另一个团队使用Maven构建的.POM文件将其包装声明为"bundle"并使用Apache Felix插件.

我需要将此工件部署到本地Maven存储库(Nexus),以便我们的内部项目可以使用它.

我已经使用deploy:deploy-file目标将bundle部署到存储库,就像使用标准JAR文件一样,这样可以正常工作.我从包中提取了嵌入的POM并在命令行上传递了它,因此命令行是:

mvn deploy:deploy-file -Dfile=3rdpartybundle.jar -DpomFile=pom.xml -DrepositoryId=internal -Durl=http://internalserver/nexus
Run Code Online (Sandbox Code Playgroud)

问题在于,当我像这样部署它时,打包被设置为bundle,因此存储库中工件的名称最终使用.bundle扩展名,而不是.jar扩展名.

现在,我们无法弄清楚如何将其声明为依赖项.如果我们这样声明:

        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>...</version>
            <type>bundle</type>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

我们收到错误,指出无法解决依赖关系.有趣的是,错误消息中的GAV坐标实际上具有"jar"作为依赖类型的值,即使我们将其设置为"bundle".

如果我们将依赖项更改为:

        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>...</version>
            <type>jar</type>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

我们得到完全相同的未解决的依赖性错误.

那么你应该如何将打包为捆绑的工件部署到Maven存储库,以便它可以用作另一个项目的编译时依赖?

谢谢

osgi bundle nexus maven

5
推荐指数
1
解决办法
4211
查看次数

如何为多模块项目中的特定模块激活 Maven 配置文件

我们有一个多模块 Maven 项目,由一个父 POM 和 5 个或更多模块组成。

如果我们激活我们的自定义“自动部署”配置文件,每个模块都可以作为构建的一部分部署到正在运行的服务器,因为每个模块的部署方式/部署内容略有不同,因此在每个模块中明确定义了该配置文件。

但是,当从父 POM 构建时,如果我激活“自动部署”配置文件,Maven 将最终部署所有模块,这几乎从来不是我们需要做的(基于我们的开发流程等)。但是我们确实希望从根构建,因为多个模块之间可能会发生变化,并且某些模块之间存在依赖关系。

当从父 POM 构建时,有没有办法只为一个模块而不是所有模块激活我们的自定义“自动部署”配置文件?

谢谢

build project maven multi-module

5
推荐指数
1
解决办法
3073
查看次数

标签 统计

maven ×2

build ×1

bundle ×1

multi-module ×1

nexus ×1

osgi ×1

project ×1