首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Subversion的多模块Maven构建中触发单个模块的Jenkins构建?

在Subversion的多模块Maven构建中,可以通过在Maven的pom.xml文件中添加一个自定义的build profile来触发单个模块的Jenkins构建。

首先,在需要构建的模块的pom.xml文件中,添加一个build profile,例如:

代码语言:php
复制
<profiles>
  <profile>
    <id>build-module-X</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.jenkins-ci.tools</groupId>
          <artifactId>maven-hpi-plugin</artifactId>
          <version>1.26</version>
          <configuration>
            <url>http://localhost:8080/jenkins/job/module-X/lastStableBuild/artifact/module-X.jar</url>
            <artifactItems>
              <artifactItem>
                <groupId>com.example</groupId>
                <artifactId>module-X</artifactId>
                <version>1.0.0</version>
                <type>jar</type>
              </artifactItem>
            </artifactItems>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

其中,id属性指定该build profile的ID,build元素指定要执行的构建步骤,plugins元素中添加了一个Maven HPI插件,该插件配置了需要构建的模块的URL,以及要构建的构件。

接下来,在主项目的pom.xml文件中,添加一个build profile,例如:

代码语言:php
复制
<profiles>
  <profile>
    <id>build</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <includes>
              <include>**/*Test.java</include>
            </includes>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

该build profile的ID与多模块项目中的build profile的ID相同,可以用于触发该build profile的构建。

最后,在主项目的pom.xml文件中,添加一个build profile,例如:

代码语言:php
复制
<profiles>
  <profile>
    <id>deploy</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <includes>
              <include>**/*Test.java</include>
            </includes>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

该build profile的ID与多模块项目中的build profile的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • idea通过maven构建多模块工程

    通过maven构建多模块比较简单,假设我们现在需要构建通过一个父模块管理俩个子模块,这里我们定义模块名称为: 父模块:bigdata 俩个子模块:provider和 common 1. 创建父模块     (1) file ->new -> project -> maven, 点击next ,不要勾选 create from archtype     (2) 填写groupid,artifaceid,version ,点击next. (groupid:com.test artifaceid:bigdata )     (3) 选择目录 project location 目录,点击finish     (4) 父模块创建完成 2. 创建provider模块     (1) 在provider 模块上,右键 new -> module -> maven ,勾选 create from archtype,选择 要创建的模块模块,此处选择  maven-archetype-webapp ,点击next     (2) 在此处可以看到  parent 为  com.test.bigdate:1.0-snapshot,groupid 和version 默认已经填写,此处只需填写 artifaceid 即可,输入 provider,点击next     (3) 此处需配置settings.xml 及maven路径,如果已经配置好,则无需配置,点击next      (4) 此处填写模块名称,模块路径,默认不修改,点击finish     (5) 子模块创建完毕 3. 创建common模块     创建common模块和创建provider类似 4. 多模块创建完成     多模块工程创建完毕,父模块pom.xml 文件 为如下格式:

    01

    对Jenkinsfile语法说不,开源项目Jenkins Json Build挺你

    我所在的组织项目数量众多,使用的语言和框架也很多,比如Java、ReactNative、C# .NET、Android、iOS等,部署环境也是多种多样比如Tomcat、K8S、IIS、客户端应用是局域网内企业证书安装等,我们没有专门的配置管理员或构建部署专员,都是开发人员自己在Jenkins中写构建脚本,每个项目都有自己的构建脚本(Scripted Pipelines),但类型相同的项目比如都是Java或都是.NET项目之间,构建脚本其实都很类似,都是靠几个已存在的构建脚本改写出来的,其实开发人员对编写Jenkins构建脚本了解也不多,另外因为没有规则和约束,更没有代码复用的机制,构建部署工作很混乱和难以管理。

    02
    领券