我正在尝试从我的Maven项目构建RPM。我有5个不同的模块,每个模块都有自己的pom.xml。在根目录中我有一个构建所有模块的pom.xml(典型的Maven设置)。当我构建RPM时,我想要包含一个不属于maven目录的目录。它位于目录[从包含我的maven模块的根文件夹]之上。在我的RPM中包含它的最佳方法是什么?或者更确切地说,在没有硬编码路径的情况下引用目录的最佳方法是什么?我对$ {baseDir}及其所指的内容感到困惑?
谢谢。
答案 0 :(得分:2)
${project.basedir}
指的是项目的根,即pom.xml所在的位置,因此您可以在<systemPath>${project.baseDir}/../../dirYouWant</systemPath>
总的来说,Maven的最佳实践会因为依赖项目周围的相对路径而感到沮丧。相反,我建议将这些文件作为自己的项目部署到您的maven存储库(作为zip,jar,等等),然后将它们作为rpm构建的一部分。根据您用于构建RPM的插件,您可以自动解压缩这些文件。
答案 1 :(得分:0)
试试这个
<dependency>
...groupid,artifactid etc..
<scope>system</scope>
<systemPath>path/to/your/jar</systemPath>
</dependency>
您是不是想要将另一个项目添加到您的maven构建级别以上?
你可以这样做: 在你的父母pom中:
<modules>
<module>../projectdirectory</module>
</modules>
在你的projectdirectory pom中:
<parent>
<groupId>...</groupId>
<artifactId>...parent...</artifactId>
<version>...</version>
<relativePath>../parentProject/pom.xml</relativePath>
</parent>