我正在使用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以确保当前工作空间中的工件在存储库中找不到它时也会被查找?
答案 0 :(得分:1)
一旦将它们声明为反应堆中的模块,Maven就会将依赖关系视为“内部”(并在项目中查找类而不是在jars之后)。如果您的父pom具有以下模块声明,Maven不应该与Artifactory联系,但应该使用已编译的类:
<modules>
<module>module1</module>
<module>module2</module>
</modules>