用于查找工作空间工件的maven settings.xml配置

时间:2013-05-08 14:40:23

标签: java maven pom.xml m2eclipse m2e

我正在使用maven而且我目前难以理解以下问题:

项目设置:

- master (parent project)
- module1 (parent is master)
- module2 (parent is master and needs module1 as "provided")

如下面的settings.xml所示,我将工件作为所有工件请求的镜像。这是一种需要的方式,因为我的构建需要的专有罐子很少(并且神器负责)。

的settings.xml:

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>${user.home}/.m2/repository</localRepository>
  <interactiveMode>true</interactiveMode>
  <usePluginRegistry>false</usePluginRegistry>
  <offline>false</offline>
  <mirrors>
    <mirror>
      <id>artifactory-virtual-repo</id>
      <name>myartifactory</name>
      <url>http://<artifactory-ip>:8081/artifactory/simple/<repo-name>/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>
  <proxies/>
  <profiles/> 
  <activeProfiles/>
</settings>

module1构建正常。但是,当我尝试构建master或module2时,它正在检查神器中的module1(上面提到的settings.xml中),这些项目仍然缺失。我如何强制eclipse(m2e)查看工作区项目呢?

换句话说,如何配置maven以确保当前工作空间中的工件在存储库中找不到它时也会被查找?

1 个答案:

答案 0 :(得分:1)

一旦将它们声明为反应堆中的模块,Maven就会将依赖关系视为“内部”(并在项目中查找类而不是在jars之后)。如果您的父pom具有以下模块声明,Maven不应该与Artifactory联系,但应该使用已编译的类:

<modules>
    <module>module1</module>
    <module>module2</module>
</modules>