Maven - 引用系统路径上的目录的最佳方式

时间:2011-05-12 17:28:57

标签: maven-2 ant maven maven-plugin

我正在尝试从我的Maven项目构建RPM。我有5个不同的模块,每个模块都有自己的pom.xml。在根目录中我有一个构建所有模块的pom.xml(典型的Maven设置)。当我构建RPM时,我想要包含一个不属于maven目录的目录。它位于目录[从包含我的maven模块的根文件夹]之上。在我的RPM中包含它的最佳方法是什么?或者更确切地说,在没有硬编码路径的情况下引用目录的最佳方法是什么?我对$ {baseDir}及其所指的内容感到困惑?

谢谢。

2 个答案:

答案 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>