java - 直接在基于maven的项目的java构建路径中添加jar文件而不在pom文件中添加其条目时构建失败?
问题描述
我有一个基于 Maven 的项目。而且我有几个依赖项是我们的自定义依赖项。
现在到现在,如果我在 java 构建路径中添加这些依赖项并使用它们在 pom 文件中输入
<dependency>
<groupId>abc</groupId>
<artifactId>abc</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\src\lib\abc.jar</systemPath>
</dependency>
并使项目构建然后它工作正常。
但是当我尝试通过删除它在 pom 文件中的条目时,因为我已经在 java build path 中添加了 build failed with error's package com.abc does not exist
我想知道为什么它会失败,因为通过在动态java项目(不是maven)中的java构建路径中添加条目,它工作正常并且构建被创建。
解决方案
Maven 想要存储库中的依赖项。使用系统范围会在未来带来有趣的痛苦!
首先,如果您可以找到您使用的 jar 的 mavenized 版本,然后切换到这些版本。如果没有,则将它们安装到您的本地存储库(.m2 文件夹)mvn install:install-file
或您的内部 Maven 存储库(Nexus、Artifactory 等)。
在我遇到类似情况的时候,我最终将安装作为构建的一部分进行,作为临时解决方案效果很好。您可以在https://stackoverflow.com/a/10803426/53897查看接受的答案
推荐阅读
- java - 登录 Java 并在 Go Lang 中验证
- django - 当我在 Django PostgreSQL 中使用 shell 创建对象时,ID 序列化不会更新
- mysql - CloudSQL - MySql - 导入后内存泄漏
- javascript - Laravel中ajax分页的页面加载
- laravel - HTPP 请求 Ajax 转换为 Laravel 用于外部 api
- python - 为什么`numpy`向下舍入`0.025`而不是向上舍入
- r - 从异方差稳健标准模型中提取残差
- django - 多对多关系中的缓存更新
- typescript - 如何使用 TypeScript 在 Vue 组件中添加自定义属性,而不需要 TypeScript 大喊大叫?
- elasticsearch - 弹性搜索全文搜索