在Subversion的多模块Maven构建中,可以通过在Maven的pom.xml文件中添加一个自定义的build profile来触发单个模块的Jenkins构建。
首先,在需要构建的模块的pom.xml文件中,添加一个build profile,例如:
<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,例如:
<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,例如:
<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的。
领取专属 10元无门槛券
手把手带您无忧上云