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

信息:
如果我在eclipse中将jars指定为引用的lib,则该项目将顺利运行,并且不会发现任何问题。

问题:由于无法从存储库下载相关代码而导致编译错误。

我的项目结构为[简化以便于理解]

utils


utils/commons [具有src / main / java样式的源] [使用程序包org.apache.commons.io.IOUtils]

utils/commons/pom.xml


utils/pom.xml [父母]

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

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文件夹下]

我仍然遇到相同的错误,并且构建不会继续进行。

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,并且构建正确。
[不幸的是,该项目太复杂了,无法复制粘贴pom.xml并进行修改,
因此从头开始编写pom.xml。]

我能不能说出什么导致我没有从存储库下载文件的地方?
提前致谢。
任何帮助将不胜感激。

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

utils / common / pom.xml [公共模块]

....
<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 [父母]

....
<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>
...

最佳答案

您需要删除公共模块<dependencyManagement>中围绕<dependencies>部分的pom.xml标记。

<dependencyManagement>部分允许您在父pom中指定依赖项信息(例如版本号)(已完成),以便简化子pom中的依赖项。但是,您仍然需要一个<dependencies>部分来指定该子级需要哪些依赖项。

07-24 19:16
查看更多