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

如何在jenkins中构建多模块maven项目

羊舌承天
2023-03-14

我的项目结构如下:

ProjectParent
 - pom.xml
 ProjectApp
   -pom.xml
 ProjectAPI
   -pom.xml
 ProjectModels
   -pom.xml
 ProjectServices
   -pom.xml
 Etc..

ProjectModel/ProjectsServicesProjectAPI/ProjectApp内的依赖项。

>

  • 我应该在Jenkins中创建单独的作业来单独构建每个模块吗?

    我为ProjectAPP创建了一个作业,但出现以下错误(已将目标和操作设置为“清洁安装”:

    [INFO]扫描项目...[INFO]
    [INFO] ------------------------------------------------------------------------ [INFO]构建myproject-app 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------

    Downloading: http://maven.springframework.org/snapshot/com/myproject/myproject-common-config/0.0.1-SNAPSHOT/myproject-common-config-0.0.1-SNAPSHOT.pom
    [WARNING] The POM for com.myproject:myproject-common-config:jar:0.0.1-SNAPSHOT is missing,
    

    没有可用的依赖信息下载:http://maven.springframework.org/snapshot/com/myproject/myproject-entities/0.0.1-SNAPSHOT/myproject-entities-0.0.1-SNAPSHOT.pom[警告]com.myproject的POM: myproject-实体: jar: 0.0.1-SNAPSHOT丢失,没有可用的依赖信息下载:http://maven.springframework.org/snapshot/com/myproject/myproject-services/0.0.1-SNAPSHOT/myproject-services-0.0.1-SNAPSHOT.pom[警告]com.myproject的POM: myproject-服务: jar: 0.0.1-SNAPSHOT丢失,没有可用的依赖信息下载:http://maven.springframework.org/snapshot/com/myproject/myproject-persistence/0.0.1-SNAPSHOT/myproject-persistence-0.0.1-SNAPSHOT.pom[警告]com.myproject的POM:myproject-持久性:jar:0.0.1-SNAPSHOT丢失,没有可用的依赖信息下载:http://maven.springframework.org/snapshot/com/myproject/myproject-common-config/0.0.1-SNAPSHOT/myproject-common-config-0.0.1-SNAPSHOT.jar......org.apache.maven.lifecycle.:无法在项目myproject-app上执行目标:无法解决项目com.myproject的依赖关系: myproject-app: war: 0.0.1-SNAPSHOT:以下工件无法解决:com.myproject: myproject-colon-config: jar: 0.0.1-SNAPSHOT,com.myproject: myproject-实体: jar:0.0.1-SNAPSHOT,com.myproject:myproject-service:jar:0.0.1-SNAPSHOT,com.myproject:myproject-持久性:jar:0.0.1-SNAPSHOT:找不到工件com.myproject:myproject-通用-配置:jar:0.0.1-SNAPSHOT在org.springframework.maven.snapshot(http://maven.springframework.org/snapshot)


    项目父Pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.myproject</groupId>
        <artifactId>myproject-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
    
        <modules>
            <module>myproject-entities</module>
            <module>myproject-services</module>
            <module>myproject-persistence</module>
            <module>myproject-app</module>
            <module>myproject-merchant</module>
            <module>myproject-common-config</module>
            <module>myproject-api</module>
        </modules>
    
        <dependencyManagement>
            <dependencies>
                ...
            </dependencies>
        </dependencyManagement>
    
        <repositories>      
            ...
        </repositories>
    
        <build>
            ...
        </build>
    
        <properties>
            ...
    
            <myproject-entities-version>0.0.1-SNAPSHOT</myproject-entities-version>
            <myproject-services-version>0.0.1-SNAPSHOT</myproject-services-version>
            <myproject-persistence-version>0.0.1-SNAPSHOT</myproject-persistence-version>
        </properties>
    
    </project>
    


    ProjectApp Pom

    <?xml version="1.0"?>
    <project
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
        xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>com.myproject</groupId>
            <artifactId>myproject-parent</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
    
        <artifactId>myproject-app</artifactId>
        <packaging>war</packaging>
    
        <version>0.0.1-SNAPSHOT</version>
        <name>myproject-app</name>
        <url>http://maven.apache.org</url>
    
    
        <dependencies>
    
            ...
    
            <dependency>
                <groupId>com.myproject</groupId>
                <artifactId>myproject-common-config</artifactId>
                <version>${myproject-common-config}</version>
            </dependency>
    
            <dependency>
                <groupId>com.myproject</groupId>
                <artifactId>myproject-entities</artifactId>
                <version>${myproject-entities-version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.myproject</groupId>
                <artifactId>myproject-services</artifactId>
                <version>${myproject-services-version}</version>
            </dependency>
    
            <dependency>
                <groupId>com.myproject</groupId>
                <artifactId>myproject-persistence</artifactId>
                <version>${myproject-persistence-version}</version>
            </dependency>
    
        </dependencies>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    
            <myproject-common-config>0.0.1-SNAPSHOT</myproject-common-config>
            <myproject-entities-version>0.0.1-SNAPSHOT</myproject-entities-version>
            <myproject-services-version>0.0.1-SNAPSHOT</myproject-services-version>
            <myproject-persistence-version>0.0.1-SNAPSHOT</myproject-persistence-version>
        </properties>
    
    </project>
    


    我是否使用了错误的目标?我需要连锁许多命令吗?即先构建其他模块?

    我用的是Maven 3。

    注意:我将目标更改为“清洁安装”,反对父母项目Pom,一切都正确构建。

    谢谢

  • 共有2个答案

    王嘉木
    2023-03-14
    匿名用户

    有同样的问题,太空卡车的回答帮助了我。

    因此,我只是运行这样的东西:

    <代码>.../ProjectParent$mvn-am-pl ProjectApp test

    岑俊明
    2023-03-14

    问题是,您不能仅为ProjectApp模块创建项目,因为它依赖于ProjectApp父模块下面的其他模块。如果您没有将这些模块部署到您的maven存储库,maven将无法在存储库或构建反应器中找到它们。

    相反,您应该为父级创建作业。这将构建必要的模块。

    当您有一份ProjectApp的工作时,您也可以使用选项也使受抚养人成为受抚养人,但我对此没有任何经验。

     类似资料:
    • 问题内容: 我有一个多模块Maven项目,其中有多个微服务作为模块,因此我的父母中列出了一些模块,如下所示: 这里是依赖项,因此我在下面列出了依赖项 : 当我在本地运行时,按预期方式在被调用之前,但是在詹金斯中,它正在尝试构建然后使构建失败说: 我是否需要运行其他作业或重新排序模块,从本地到Jenkins有什么不同?感谢对此的任何帮助。 问题答案: 众所周知,问题在于子模块之间的依赖关系失败,因为

    • 嗨我在网上搜了一遍,看了一堆文章,所以问题和文档都找不到解决办法,这里是我的问题。 我有一个多模块maven项目,其中包含三个模块a、B和C,a和B独立,C依赖于a和B,当然我有一个父项目。我还设置了一个jenkins服务器来构建这些项目,以及一个nexus存储库。 如有任何帮助,不胜感激。谢谢!

    • 但我在模块2中添加了依赖项。模块2是最后一个项目。 项目结构如下。 父项目的pom.xml

    • 问题内容: 我在Jenkins中建立了一个大型Maven多模块构建。它是为增量构建而设置的。 触发后,它将解析所有POM并弄清楚需要构建什么。 当前已将其设置为触发SCM更改。 我想进行此构建,以便可以执行以下操作: 仍然手动启动它。当我这样做时,它的增量构建行为将像今天一样起作用。 从Subversion提交钩子触发构建 。我想知道,如果我通过出色的指令来设置提交挂钩的麻烦,那将不会导致构建过程

    • 问题内容: 我的项目结构如下: 是内的依赖项。 我是否应该在Jenkins中创建单独的作业以分别构建每个模块? 我为此创建了工作,但在下面得到以下错误(已将目标和操作设置为“全新安装”: [INFO]扫描项目… [INFO] [INFO] ----------------------------------- ------------------------------------- [INFO]

    • 我有一个多模块maven应用程序,我们需要通过Jenkins构建。项目结构如下: 现在,mvn清洁安装-fa.xml工作正常。为此,我创建了一个詹金斯的工作。现在,和a.xml一样,我有另一个项目b.xml.b.xml有和a.xml相同的代码,除了不同的Ids。所以,我又为詹金斯创造了一份工作b.xml.两份工作都很好。但是,现在我想根据我们在Git中提交的项目,从单个Jenkins工作中构建这两