Jenkins/Maven增量构建问题

3
我被指派负责挑选所有与Maven / Jenkins相关的项目。目前,每当Jenkins中有SCM更改(由svn驱动)时,修改的文件会重新构建,并且依赖于它的所有内容都会构建,这种效果会发生级联。虽然从某种意义上说这是好的,但这不是首选行为。当前所需的是,构建修改的文件以及所有立即相关的内容,而不会在没有第二个文件不同的情况下向前级联。我仍然能想到的唯一解决方案(?)是Jenkins / Maven实际上并不知道项目之间的关系,并且没有进行有限级联,因为它不知道何时触发构建。
在Jenkins中,禁用“每当构建快照依赖项时构建”并使用高级构建选项中的“增量构建”。轮询SCM也已启用。 Jenkins不再在项目页面上显式知道上/下游项目。
当SCM更改时,没有级联效应作用于立即相关的模块。 Jenkins没有处理增量步骤,因此使用了增量构建插件,但没有出现不同的行为。
在旨在模拟我们实际项目尝试实现的沙箱环境中。 沙箱设置
 |Trunk
 --|Project_C
 | -Pom.xml
 | -src
 --|Project_B
 | -pom.xml
 | -src
 --|Project_A
 | -pom.xml
 | -src

项目A依赖于项目B。 项目B依赖于项目C。

当在项目C的源代码中进行更改(+ SCM'd),该更改会影响项目B的行为,Jenkins仅重新构建Project_C。

项目C的pom.xml文件

<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>project</groupId>
    <artifactId>c</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <name>c</name>

    <build>
        <plugins>
            <plugin>
          <groupId>org.jvnet.maven.incrementalbuild</groupId>
              <artifactId>incremental-build-plugin</artifactId>
          <version>1.3</version>
              <executions>
                <execution>
                  <goals>
                    <goal>incremental-build</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
        </plugins>
    </build>
</project>

项目B的pom.xml

<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>project</groupId>
    <artifactId>b</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <name>b</name>
    <build>
        <plugins>
      <plugin>
              <groupId>org.jvnet.maven.incrementalbuild</groupId>
              <artifactId>incremental-build-plugin</artifactId>
              <version>1.3</version>
              <executions>
                <execution>
                  <goals>
                    <goal>incremental-build</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>project</groupId>
            <artifactId>c</artifactId>
            <version>1.0</version>
            <type>jar</type>
        </dependency>
    </dependencies>
</project>

顺便提一句:有没有人非常了解“增量构建”选项与“每当快照依赖项构建时构建”选项之间的交互作用?

1个回答

0

那么“增量构建”选项到底是做什么的?对我来说,它似乎什么都没做。 - user3757417
非常晚了,但你们在谈论不同的事情。下面的另一个答案(可能是垃圾邮件)是关于“incremental-build-plugin”,这完全是另一回事。 - imagineerThat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接