【发布时间】:2013-06-30 09:56:27
【问题描述】:
我是 pom 的新手,但是在我开始这个项目之前,我在 maven.apache.org 上浏览了“入门”,并且还提到了公司内部的一个现有项目。
信息: 如果我在 Eclipse 中将 jar 指定为引用的库,则项目运行顺利并且没有观察到任何问题。
问题:编译错误,因为无法从存储库下载依赖代码。
我的项目结构是[简化以便于理解]
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。 我还验证了代理详细信息是正确的,因为另一个旧项目引用了相同的 URL 并且正在正确构建。 [不幸的是,该项目过于复杂,无法复制粘贴 pom.xml 并进行修改, 因此从头开始编写 pom.xml。]
可以指出我缺少什么导致无法从存储库下载吗? 提前致谢。 任何帮助将不胜感激。
注意: 1) 我从 2 个不同的 pom.xml 中粘贴 sn-ps 及其目录名称,以便于识别。可应要求提供附件。 2) 我修改了对机密数据的引用以保护某些身份。
utils/common/pom.xml [commons 模块]
....
<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>
...
【问题讨论】:
-
显示实际的 Maven 输出会很有帮助。
-
乔纳森的评论奏效了。谢谢一吨。 :)
标签: java eclipse maven pom.xml parent-pom