当前位置: 首页 > 知识库问答 >
问题:

将工件部署到两个不同的远程存储库中——Maven?

凌琦
2023-03-14

需要根据特定环境从两个远程存储库部署工件。所以我尝试在pom.xml的分发管理中使用配置文件

   <profiles>
<profile>
    <id>dev-repository</id>
    <activation>
        <property>
            <name>devRepo</name>
            <value>true</value>
        </property>
    </activation>
    <properties>
    </properties>
    <distributionManagement>
        <repository>
        <id>dev</id>
        <url>https://nexus/dev</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    </distributionManagement>
</profile>

<profile>
    <id>qa-repository</id>
    <activation>
        <property>
            <name>!devRepo</name>
        </property>
    </activation>
    <properties>
    </properties>
    <distributionManagement>
          <repository>
        <id>qa</id>
        <url>https://nexus/qa</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    </distributionManagement>
</profile> 
</profiles>

尝试激活个人资料

我得到以下错误。

部署失败:存储库元素没有指定在POM内部分布管理元素或在-DaltDeploymentRepository=id::布局::url参数

似乎pom无法识别分发管理标签。

但它在没有单一分销管理的配置文件的情况下运行良好。

有谁能给点建议吗?

参考

设置Maven以允许轻松部署到不同的存储库

Maven插件的部署问题

共有1个答案

章增
2023-03-14

我不使用配置文件,而是使用url形式定义distributionManagement

然后您可以执行mvn清洁部署-Ptarget.repo=dev之类的操作。

 类似资料:
  • 问题内容: 我们有许多Java项目,这些项目是使用Jenkins构建的CI。这些都可以部署到我们自己的Nexus服务器上。问题是,我们需要将这些库提供给第三方,但没有源代码。因此,对于每个项目,在Nexus中,我们都有: __为我们的开发人员 发布 存储库(包括已部署的源代码) __我们开发人员的 快照 存储库(包括已部署的源代码) 第三方发布 存储库(仅JAR + POM) (并且很高兴拥有):

  • 我们有许多Java项目,它们是由Jenkins构建的。这些都部署到了我们自己的Nexus服务器上。问题是,我们需要向第三方提供这些库,但没有源代码。因此,对于每个项目,在Nexus中,我们有: 为我们的开发人员发布存储库(包括部署的源代码) 我们开发人员的快照存储库(包括部署的源代码) 第三方发布存储库(仅限JAR POM) (最好有):第三方快照存储库(仅限JAR POM),用于第三方夜间构建

  • 我见过使用Maven构建和部署本机代码--但无法使这种(非常相似的)部署工作如我所愿… 我有一个用Maven和Maven CMake插件构建的C++项目。这涉及到几个Maven概要文件,为我在构建平台上使用的各种C++编译器选择正确的设置。(Windows 10、Ubuntu 16.04、Ubuntu 18.04、CentOS 7、Raspbian、macOS High Sierra)。我使用Je

  • 问题内容: 我有一个构建过程,之后将我的战争上传到我们本地的Maven存储库。 当我们部署到TEST和PROD时,我想使用maven cargo插件并指定要部署到这些环境的版本。如何配置pom(或者可能是一个名为pom-deploy.xml的新pom)以从存储库中拉出特定的战争并进行远程部署? 谢谢 问题答案: 要在新项目中获取WAR文件,只需为其声明一个依赖项。

  • 我有一个pom构建了一个jar,并使用rpm maven插件将其打包成rpm。jar既用作独立应用程序,也用作其他应用程序的依赖项,因此我需要将这两个构件部署到本地Nexus。我希望将jar部署到标准的maven releases/maven snapshots存储库中,但我希望将rpm部署到同一个Nexus中的另一个存储库中,该存储库仅用于我们的rpm。 我的专业知识相当基础,但我不知道如何做到

  • 问题内容: 背景:我正在封闭网络中的Maven项目,这意味着我无法连接到Maven Central。我有一个存储库文件夹,其中包含我需要的所有工件,包括插件和Maven工件。另外,我无法使用或安装Nexus。 问题:我想使用maven 3.6.0 / jdk 1.8.0_162运行Jenkins作业。我的settings.xml文件如下: 我的POM没有存储库部分,因为jenkins从属服务器应确