我正在使用Docker文件在GitLab CI上构建我的maven项目。
我想用“编译”阶段和“测试”阶段配置我的管道。为了能够做到这一点,我需要将maven super POM中定义的属性error_page 405 /405.html;
error_page 404 /404.html;
error_page 401 400 402 403 406 407 408 409 410 411 412 413 414 415 416 417 418 420 422 423 424 426 428 429 431 444 449 450 451 /40x.html;
error_page 500 501 502 503 504 505 506 507 508 509 510 511 /50x.html;
设置为docker缓存,这样编译后的工件就不会在作业之间丢失。
project.build.directory
是预定义的maven属性。因此,我认为我可以使用CL参数project.build.directory
来定义它。这在某种程度上不起作用,我的项目仍然构建到默认目录-Dproject.build.directory=anotherDir
。
如果我用
修改我的POMtarget
并致电<properties>
<buildDir>target</buildDir>
</properties>
<build>
<directory>${buildDir}</directory>
</build>
,我的项目按预期构建到mvn clean install -DbuildDir=customTargetDir
。
为什么?我真的没有看到差异。在这两种情况下,我都定义了现有属性的值。