Ven*_*n K 7 caching build maven
我有一个 Maven 项目,有 2 个模块和一个父 pom
<modules>
<module>api</module>
<module>service</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
我想利用 Maven 缓存扩展,并且我已将其添加到父 pom 的构建部分中
<extensions>
<extension>
<groupId>org.apache.maven.extensions</groupId>
<artifactId>maven-build-cache-extension</artifactId>
<version>1.0.0</version>
</extension>
</extensions>
Run Code Online (Sandbox Code Playgroud)
我还添加了一个 maven-build-cache-config.xml 文件,但是似乎每次我运行时都会mvn clean package为我的子模块生成不同的校验和,因此我实际上并没有从缓存中受益,因为我所有的 java文件位于这些子模块中
不幸的是,我尝试了多种配置但没有运气
<?xml version="1.0" encoding="UTF-8" ?>
<cache xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0 http://maven.apache.org/xsd/cache-config-1.0.0.xsd">
<configuration>
<enabled>true</enabled>
<hashAlgorithm>XX</hashAlgorithm>
</configuration>
<input>
<global>
<glob>{*.java,*.xml,*.properties}</glob>
<includes>
<include>recursive=api/*</include>
<include>recursive=service/*</include>
</includes>
</global>
</input>
</cache>
Run Code Online (Sandbox Code Playgroud)
如果没有更改,如何使此扩展实际缓存具有相同校验和的子模块的内容。我知道这个扩展是最近才出现的,我在网上找不到任何点击。
编辑
将其中一个子模块注释掉,实际上最终工作正常并且缓存正确启动。该扩展是否可能存在扫描单个模块的限制?
事实证明,这个问题是一个“虚惊”。在我的 api 模块中,我有一个 swagger 文件,它将在ignore-generated文件夹中生成 POJO,因此解决方法是在这个特定模块中添加以下内容,然后一切都按预期工作,并进行适当的缓存。
<properties>
<maven.build.cache.exclude.ignore-generated>${project.basedir}/ignore-generated</maven.build.cache.exclude.ignore-generated>
</properties>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |