java - Maven 多模块项目不会因编译错误而失败
问题描述
我有多模块 maven 项目,例如 proj-a、proj-b、proj-c。在这些项目中,有一个名为 assemler 的项目,它基本上为多模块项目的 pom 生成的所有 jar 文件创建一个 zip 文件。汇编器项目使用 maven-assembly-plugin 来准备 zip 文件。我的问题是多模块项目的 pom 文件不会因编译错误而失败。随后,无论是否存在编译错误,汇编程序 pom 都会创建 zip 文件。如果出现编译错误,如何停止汇编程序项目以创建 zip 文件?
这是多模块项目的 pom.xml
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.my.projects</groupId>
<artifactId>packer</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>../../com.proj-a</module>
<module>../../com.proj-b</module>
<module>../../com.proj-c</module>
...........
<!-- assembling all jars -->
<module>./assembler</module>
</modules>
汇编器的 pom.xml 是
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.my.projects</groupId>
<artifactId>assembler</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.my.projects</groupId>
<artifactId>com.proj-a</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.my.projects</groupId>
<artifactId>com.proj-b</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.my.projects</groupId>
<artifactId>com.proj-c</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-bundles</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>release-all-for-test</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>/src/resources/assembly-descriptor.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
而 assembly-descriptor.xml 是
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>dist-assembly</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<useTransitiveDependencies>false</useTransitiveDependencies>
<outputDirectory>/out-put/WEB-INF/lib</outputDirectory>
<useProjectArtifact>false</useProjectArtifact>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
</assembly>
解决方案
检查模块 proj-a、proj-b、proj-c 及其父模块中的 maven-compiler-plugin 配置。该插件可能已配置为不会因编译错误而失败。它通常会因编译错误而失败。该插件的选项称为failOnError。 https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#failOnError
推荐阅读
- microsoft-graph-api - 调用图创建团队 API 时出现 BadRequest
- r - 编写一个自定义 dplyr 函数,按降序对列表中的每个小标题进行排序
- python - 具有许多类别的不平衡数据集,一个热门编码问题,具有高 F1 分数但在验证集上的准确性非常低
- material-ui - Material UI 和 Next.js 的问题
- reactjs - axios 将请求发布到本地主机
- swift - 如何将带有 GMT 和时区的日期字符串转换为日期
- swift - 从 TextField 获取用户输入
- c# - .net mvc 的动态输入字段
- linux - 如何在ffmpeg中对视频轨道进行md5(仅)
- reactjs - 通过反应增加和减少输入值