首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在maven构建期间,[mvn install]依赖项未从存储库下载

在maven构建期间,[mvn install]依赖项未从存储库下载
EN

Stack Overflow用户
提问于 2013-07-03 04:49:57
回答 2查看 5.5K关注 0票数 2

我是pom的新手,但在开始这个项目之前,我在maven.apache.org上经历了“入门”,还提到了公司内部的一个现有项目。

信息:如果我将jars指定为eclipse中的引用库,则项目正在顺利运行,并且没有观察到任何问题。

问题:编译错误,因为无法从存储库中下载依赖代码。

为了更容易理解,我的项目结构得到了简化

代码语言:javascript
复制
utils

utils/commons的源代码为src/main/java样式

代码语言:javascript
复制
utils/commons/pom.xml

utils/pom.xml父级

现在,我从commons文件夹开始编写pom.xml作为唯一的模块,并且没有引用任何父模块/其他模块。在我运行mvn install之后,它给出了如下错误

代码语言:javascript
复制
ToolUtils.java:[17,28] error: package org.apache.commons.io does not exist
ToolUtils.java:[18,23] error: package org.apache.log4j does not exist

如果我注释了使用org.apache.commons.io.IOUtils的代码,那么mvn install就可以正常工作并生成一个jar。我查找了网络,发现问题是找不到存储库,所以我更新了对父pom.xml的引用。还在父pom.xml中包含了存储库的详细信息。它直接位于utils文件夹下

我仍然收到相同的错误,并且构建不会进一步进行。

代码语言:javascript
复制
ToolUtils.java:[17,28] error: package org.apache.commons.io does not exist
ToolUtils.java:[18,23] error: package org.apache.log4j does not exist

我正在使用一个内部URL,它是我在浏览器中手动验证过的。此外,我已经验证了代理详细信息是正确的,因为另一个旧项目引用相同的URL,并且正在正确构建。不幸的是,这个项目太复杂了,无法复制、粘贴和修改pom.xml,因此需要从头开始编写pom.xml。

我遗漏了什么,导致无法从存储库下载?提前谢谢。任何帮助都将深表感谢。

注意: 1)为了便于识别,我粘贴了来自2个不同pom.xml的代码片段和它们的目录名。可根据要求提供附件。2)我修改了对机密数据的引用,以保护某些身份。

utils/common/pom.xml commons模块

代码语言:javascript
复制
....
<parent>
    <groupId>com.osg.rtos</groupId>
    <artifactId>rxutils</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
....
    <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>            
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-commons-service</artifactId>
            <version>${rtos.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

utils/pom.xml父文件

代码语言:javascript
复制
....
<groupId>com.osg.rtos</groupId>
<artifactId>rxutils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rxutils</name>
<packaging>pom</packaging>  


<repositories>
    <repository>
        <id>release</id>
        <url>http://internal.com/~devbuild/repository</url>         
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-commons-service</artifactId>
            <version>${rtos.version}</version>
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-data</artifactId>
            <version>${rtos.version}</version>
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-exception</artifactId>
            <version>${rtos.version}</version>
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-mailbox-service</artifactId>
            <version>${rtos.version}</version>
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-message-service</artifactId>
            <version>${rtos.version}</version>
        </dependency>
        <dependency>
            <groupId>com.osg.rtos</groupId>
            <artifactId>rtos-rest</artifactId>
            <version>${rtos.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<modules>
    <module>commons</module>        
    <module>rxutils</module>        
    <module>tool</module>        
</modules>  
...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-03 06:01:36

您需要删除commons模块pom.xml<dependencies>部分周围的<dependencyManagement>标记。

部分允许您在父pom中指定依赖关系信息,如版本号(正如您所做的那样),这样您就可以简化子pom中的依赖关系。但是,您仍然需要一个<dependencies>部分来指定该子对象需要哪些依赖项。

票数 4
EN

Stack Overflow用户

发布于 2016-02-16 17:52:43

pom.xml中使用

代码语言:javascript
复制
<dependency> 
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

删除或注释<exclusions><exclusion>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17435643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档