有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何让m2e(maven integration for eclipse)知道在哪里找到依赖项?

在STS(springsource工具套件)中工作时,打开pom。xml文件并在“依赖项选项卡”中检查依赖项,添加/选择maven dependency将给出0结果。我们需要编辑pom。xml来手动添加依赖项。有没有办法让M2E知道在哪里检查存储库以搜索依赖关系


共 (2) 个答案

  1. # 1 楼答案

    默认情况下,所有pom。xml将自动扩展超级POM,它位于maven_installation_folder/lib/maven-x.x.x-uber.jar=>;包org.apache.maven.project==>pom-4.0.0。xml。超级POM中指定的所有配置都由您为项目创建的POM继承

    如果你打开pom-4.0.0。xml,您会发现maven中央存储库http://repo1.maven.org/maven2/是在这里定义的。这意味着如果在pom中指定<dependency>。xml,maven将尝试按以下顺序下载此依赖项:

    1. Maven本地存储库(即您的本地硬盘)
    2. 超级POM中指定的Maven中央存储库(即http://repo1.maven.org/maven2/
    3. Maven远程存储库(在pom.xml<repository>部分中定义)

    通常,我会使用一些maven repository搜索引擎,比如this,找到我想要使用的库/框架/工具的<dependency>,然后将它们粘贴到pom中。xml

    如果依赖关系存在于Maven中央存储库中,那么一切都会很好,并将其下载到您的本地存储库中。但是,如果一些<dependency>(如Hibernate)无法从Maven central repository中找到和下载,您可以尝试访问其官方网站,找到其存储库链接,并将其粘贴到pom的<repository>部分。xml。例如,Hibernate需要在pom中定义jboss存储库。xml如下所示:

    <repositories>
            <repository>
                <id>repository.jboss.org</id>
                <name>JBoss Repository</name>
                <url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
               <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>     
            </repository>        
     </repositories>
    

    你可以参考this了解<repository>

  2. # 2 楼答案

    默认情况下,M2e会在maven中央存储库中搜索工件。它下载一个包含工件细节的索引文件。您可以在设置的存储库部分中指定要搜索的其他存储库。xml文件。请注意,有些存储库没有此索引文件