gpt4 book ai didi

java - Maven : Get the root path of the parent project in the child project

转载 作者:行者123 更新时间:2023-12-02 02:50:36 24 4
gpt4 key购买 nike

我有一个父项目和许多引用父项目的子项目。
在父级中,我有一个执行一些安全检查的配置文件。此配置文件需要一个我只想在父项目中拥有的配置文件和一个应位于子项目中的输出目录。

父pom.xml

<project ...>
<groupId>com.examle.app</groupId>
<artifactId>app-parent</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<profiles>
<profile>
<id>security</id>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>${dependency-check-maven.version}</version>
<configuration>
<failBuildOnCVSS>11</failBuildOnCVSS>
<format>ALL</format>
<suppressionFile>Parent_Root_Dir/owasp_suppress_false_positives.xml</suppressionFile>
<outputDirectory>Child_Root_Dir/owasp_output</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

子pom.xml

<project ...>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.example.app</groupId>
<artifactId>app-parent</artifactId>
<version>0.1-SNAPSHOT</version>
</parent>

<artifactId>app-child1</artifactId>
<version>0.1-SNAPSHOT</version>
<name>Child1</name>

.
.
.

</project>

我的文件夹结构如下

parent-project
- pom.xml
child1-project
- pom.xml
child2-project
- pom.xml
.
.
.

我的 parent 更有可能在子项目旁边而不是在 child 项目之上。

在父pom中,我设置了占位符Parent_Root_DirChild_Root_Dir,我考虑在其中放置变量,但我不知道要采用哪些变量,或者如果这个甚至是可能的。

安全检查通过 mvn clean verify -P security 在子项目中执行

我尝试了几个 Maven 变量,例如 ${maven.multiModuleProjectDirectory} ${project.basedir} ${parent.basedir}但当在子项目中执行maven命令时,它们都引用子根路径

我还尝试制作自定义变量 <main.basedir>并将该变量放在父 pom 中,而不是 Parent_Root_Dir 中。
子pom.xml适配

<properties>
<main.basedir>${project.parent.basedir}</main.basedir>
</properties>

但这也不起作用。

有人知道如何获取父根路径吗?或者对我可以进一步尝试什么有什么建议?将配置文件放入每个子项中将是最后一个选择,但我宁愿不这样做,因为我至少需要这个工作流程来完成另一个配置文件。

最佳答案

我猜

build-helper:rootlocation

应该可以解决问题:

https://www.mojohaus.org/build-helper-maven-plugin/rootlocation-mojo.html

关于java - Maven : Get the root path of the parent project in the child project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com