我已经花了很多时间,而且我的脑袋已经爆炸了,所以我会非常感谢任何帮助。
我正在将Netbeans平台应用程序从ant迁移到maven,因此我将我的版本控制仓库中的所有jar更改为maven依赖项。我在主maven repo中找到了所需的工件,我在Netbeans的帮助下将其添加为依赖项,但它的类型为 POM ,并且放在Non-classpath Dependencies
中我没有想法如何使用它,因为它没有添加到类路径等...
有人可以解释这些 POM 依赖关系是什么以及如何使用它们?
提前谢谢!!
这是pom.xml
<dependency>
<groupId>com.kitfox.svg</groupId>
<artifactId>svg-salamander</artifactId>
<version>1.0</version>
<type>pom</type>
</dependency>
答案 0 :(得分:15)
添加pom依赖项只会降低传递依赖关系,即在pom中定义为依赖关系的jar依赖关系。由于显而易见的原因,pom没有被添加到类路径中,但是从pom可以访问的传递依赖性将被添加到类路径中。
理想情况下,您需要具有类型为jar
的依赖项。默认依赖关系类型为jar
,您只需在依赖项部分中定义没有任何type
元素的依赖项。
如果您在Maven Cental中找到了所需的jar文件,那么您只需要为依赖项部分中的每一个提供groupId artifactId和version。
答案 1 :(得分:3)
当我需要添加pom
类型依赖时,我个人无法想到任何情况。我通常在项目中使用pom
包装作为父模块(指定常见项目配置,如插件版本,常见依赖项,例如log4j
,例如存储库,属性等)和实用程序包模块(一个组装项目并做一些其他必要的事情。)
根据我的经验(我做过几次),当将项目从ant迁移到maven时,你应该获取项目过去依赖的所有jar文件并将它们转换为maven依赖项(groupId:artifactId:version
)。最有可能所有这些依赖关系都没有<type>
(例如是jars)。