1

我正在使用 maven,我目前遇到以下问题:

项目设置:

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

如以下 settings.xml 所示,我将工件作为所有工件请求的镜像。这是需要的,因为我的构建需要的专有 jar 很少(并且工件负责它)。

设置.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 时,它正在检查仍然缺少这些项目的工件(上面在 settings.xml 中提到的)中的 module1。如何强制 eclipse (m2e) 也查看工作区项目?

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

4

1 回答 1

1

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

<modules>
    <module>module1</module>
    <module>module2</module>
</modules>
于 2013-05-09T08:09:02.377 回答