Maven本地项目之间的相互依赖

本文介绍如何使用Maven创建并打包项目,以及如何在一个Maven项目中依赖另一个Maven项目。通过具体步骤展示了如何配置pom.xml文件来实现项目的打包和依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业余搞一下后台,maven很方便构建,不过对我来说还比较陌生,很多问题当时各种搜索各种问搞定了,但是好久不用再用的时候明明记得搞过就是忘了怎么操作,为了避免再次各种搜索各种问,这里记录一下。

新建两个maven项目分别为:
testMaven1

项目包名:com.test.pack
项目名:testMaven1
版本号:1.0.0

testMaven2

项目包名:com.test.pack
项目名:testMaven2
版本号:1.0.0

打jar包

testMaven1项目默认的pop.xml文件部分变量如下所示:

项目包名:<groupId>com.test.pack</groupId>
项目名:<artifactId>testMaven1</artifactId>
>版本号:<version1.0.0</version>

testMaven2项目默认的pop.xml文件部分变量如下所示:

项目包名:<groupId>com.test.pack</groupId>
项目名:<artifactId>testMaven2</artifactId>
版本号:<version1.0.0</version>

然后右键项目testMaven1–Run as —Maven install,这时在target下会生成名字叫做pack-1.0.0.jar的文件,这就是项目包。(在Eclipse或者Idea会在对应的maven仓库中生成对应的项目jar包)(这一步很重要)

依赖本地项目

这个方法的前提是被依赖的项目也必须是maven项目
首先把被依赖的maven项目testMaven1打包,并且运行了Maven install
然后找到testMaven2配置pom.xml

<dependencies>
    <dependency>
            <groupId>com.test.pack</groupId>
            <artifactId>testMaven1</artifactId>
            <version>1.0.0</version>
      </dependency>
</dependencies>

然后保存即可.
然后就可以在testMaven2引用testMaven1中对应的类

### 解决Maven项目中依赖项报错(显示红色)的方法 #### 1. 检查并配置Maven设置 确保全局和项目Maven设置正确无误。这包括确认`settings.xml`文件路径以及本地仓库位置等参数是否准确[^2]。 #### 2. 更新或重新导入项目依赖 对于已经存在的项目,可以通过右键点击`pom.xml`文件,在弹出菜单中选择`Maven -> Reimport`来强制刷新依赖关系树,使IDEA重新解析所有的依赖声明,并下载缺失的库文件到本地缓存目录内[^3]。 #### 3. 清理旧有的构建产物 有时候残留的目标文件夹(`target`)内的编译结果可能干扰新的构建过程。建议手动删除这些临时生成的数据后再尝试上述操作,有助于排除潜在冲突因素的影响。 #### 4. 验证网络连接状态与代理配置 如果企业内部使用私有Nexus或其他形式的艺术品存储服务,则需特别注意防火墙策略、SSL证书验证等问题;而对于公开互联网上的资源获取而言,合理的HTTP(S)代理设定同样重要。当遇到无法正常访问远程中央仓库的情形时,应该仔细排查相关环境变量及插件配置选项,必要情况下调整为国内镜像源地址以加速同步速度并提高成功率[^5]。 #### 5. 审视POM定义逻辑结构 复杂度较高的多模块工程往往容易引发各种意想不到的技术难题。此时应当逐一审查各子组件间的相互引用关系是否存在循环依赖现象,同时留意版本号范围指定规则是否合理适当——过宽可能导致意外拉取不兼容的新版包体进来造成破坏性更改;反之则会阻碍及时跟进官方发布的安全补丁和技术改进措施[^1]。 ```xml <!-- 示例:规范化管理父级聚合型POM --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 统一控制所有子模块共享的基础属性 --> <groupId>com.example.parent</groupId> <artifactId>parent-project</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <!-- 明确指出所期望使用的具体Java运行时环境 --> <properties> <java.version>8</java.version> </properties> <!-- 推荐采用BOM方式集中维护第三方类库的选择标准 --> <dependencyManagement> ... </dependencyManagement> <!-- 列举构成整个解决方案体系下的各个组成部分 --> <modules> <module>child-module-a</module> <module>child-module-b</module> </modules> </project> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值