Maven父母pom m2 vs .m2

时间:2015-11-25 18:02:56

标签: maven jenkins

我与一群人分享了一个Maven项目。在尝试在Jenkins上构建它时,我正在查看该项目的父母pom的细节。我想确认我对父母pom中的以下设置的解释:

<repository>      
    <id>m2-local</id>      
    <url>file:m2</url>
</repository>

对我来说,上面的内容似乎是指项目的父{q} m2个文件夹。但身份m2-local对我毫无意义。 pom中的其他地方没有m2-local的其他引用。我还在m2-local中查找了.m2/settings.xml,但也没有找到它。 m2-local可能在这里没有任何意义吗?另外,file:m2用于Windows表示法,但Jenkins坐在Linux上。在Linux上应该是什么样子?

1 个答案:

答案 0 :(得分:2)

<repository>
    <id>m2-local</id>
    <url>file:m2</url>
 </repository>

此配置声明了一个Maven存储库,其ID为m2-local且指向file:m2。 id只是一个标识符,没有其他含义。更相关的是URL。

这意味着当Maven尝试查找依赖项时,它会在URL file:m2中查找它们,以及其他潜在存储库的URL。 URL file:m2指向本地计算机上名为m2的文件夹,位于与POM相同的位置(这是因为它使用的是相对路径)。这种表示法在Windows和Linux中都有效。

基本上,这意味着要使您的构建在Jenkins机器上运行,您需要在项目的根目录(POM的位置)上有一个文件夹名m2,Maven将在内部查找工件

我建议您阅读Maven文档中的Introduction to Repositories