Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jenkins/Maven增量构建问题_Java_Maven_Svn_Jenkins - Fatal编程技术网

Java Jenkins/Maven增量构建问题

Java Jenkins/Maven增量构建问题,java,maven,svn,jenkins,Java,Maven,Svn,Jenkins,我的任务是完成所有与maven/jenkins相关的项目。目前,每当在jenkins(svn驱动)中进行SCM更改时,都会重建更改后的文件,并构建依赖于它的所有内容,这种效果会级联。虽然这在某种意义上是好的,但它不是首选行为。当前需要的是构建修改后的文件,并且构建所有直接相关的文件,而不进行前向级联,除非第二个文件现在不同。我仍然能想到的唯一解决方案(?)是Jenkins/Maven实际上没有意识到项目之间的关系,也没有进行有限的级联,因为它没有触发构建的位置 在Jenkins中,禁用“每当构建

我的任务是完成所有与maven/jenkins相关的项目。目前,每当在jenkins(svn驱动)中进行SCM更改时,都会重建更改后的文件,并构建依赖于它的所有内容,这种效果会级联。虽然这在某种意义上是好的,但它不是首选行为。当前需要的是构建修改后的文件,并且构建所有直接相关的文件,而不进行前向级联,除非第二个文件现在不同。我仍然能想到的唯一解决方案(?)是Jenkins/Maven实际上没有意识到项目之间的关系,也没有进行有限的级联,因为它没有触发构建的位置

在Jenkins中,禁用“每当构建快照依赖项时构建”,而是在高级构建选项中使用“增量构建”。还启用了轮询scm。 Jenkins在项目页面上不再明确了解上/下游项目

当SCM变更通过时,不会对直接相关的模块产生级联效应。 Jenkins没有处理增量步骤,所以使用了增量构建插件,没有发生任何不同的行为

在沙箱环境中,模拟实际项目试图完成的内容

沙箱设置

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

当项目C的src代码发生可能影响项目B行为的变更(+SCM'd)时,Jenkins仅重建项目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>

4.0.0
项目
C
1
罐子
C
org.jvnet.maven.incrementalbuild
增量构建插件
1.3
增量构建
项目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>

4.0.0
项目
B
1
罐子
B
org.jvnet.maven.incrementalbuild
增量构建插件
1.3
增量构建
项目
C
1
罐子

旁注:是否有人非常了解“增量构建”选项与“每当构建快照依赖项时构建”选项之间的交互作用?

这不是jenkins插件,而是底层maven无法检测到此更改,

那么增量构建选项到底做了什么?对我来说似乎做得很好。。没什么,太晚了,但你们在谈论不同的事情。下面的另一个答案(可能是垃圾邮件)是关于“增量构建插件”,这也是完全不同的。
<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>