Maven环境下面多项目之间的引用
如图:
https://github.com/sdl/odata-example sdl OData例子包含了4个项目,下载到本地后编译。发现只有model项目是可以编译过去了。其他几个暂时编译不过。

提示:Could not find artifact,
原因如下:例如编译examble-datasource就会报如下错误,首先examble-datasource添加了对examble-model的引用,但是examble-model引用需要从maven的本地仓库中寻找。在我们本地仓库中一般情况不会有刚编译项目的jar包的。正常情况我们是编译成jar包,只会放在target目录里面了。
因为编译过程一般是
第一步,maven clean
第二步, 做个目标为:clean tomcat:redeploy的maven build,然后执行maven build。

这样target目录就会有对应的jar包了。

但是即使这样 examble-datasource编译的时候还是会报错。即便是examble-model的jar已经生成了也没用。因为examble-datasource调用的时候是调用Maven本地仓库里面的examble-model引用。
maven本地仓库的目录一般在下面 用户名\.m2\repository

所以 必须把example-model jar包添加到本地仓库。
参考
https://blog.csdn.net/chenbhhh/article/details/80737106?utm_source=blogkpcl5
https://blog.csdn.net/qq_15237993/article/details/72540928
新增一个maven build
其中goals如下:
install:install-file -Dfile=C:\Users\Thinkpad\Downloads\odata-example-master\example-model\target\example-model-1.0-SNAPSHOT.jar -DgroupId=com.sdl -DartifactId=example-model -Dversion=1.0-SNAPSHOT -Dpackaging=jar
其中的含义,如果example-datasource需要添加example-model的引用,则需要在POM文件中添加对model jar的引用

<dependency>
<groupId>com.sdl</groupId>
<artifactId>example-model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
那么Maven 安装 JAR 包的命令是:
mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpackaging=jar

这样把example-model的的jar包添加到本地仓库后,在编译example-datasource发现可以通过了。
最后,直接maven build OData-example成功!大功告成。
在IDEA下面好像会简单一些,
可以参考:https://blog.csdn.net/yueloveme/article/details/80104808

Maven环境下面多项目之间的引用的更多相关文章
- 适AT maven多个子项目、父项目之间的引用问题
适AT maven多个子项目.父项目之间的引用问题 在项目时用到maven管理项目,在一个就项目的基础上开发新的项目:关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己 ...
- .NET三层架构各项目之间的引用关系及如何添加引用?
1.1三层之间的引用 整个.NET框架的项目创建完成之后,在开发之前,还需要建立各个项目之间的引用关系,以便在编写C#业务逻辑代码时调用相关项目的类库. 1.1.1 引用关系规则 .NET三层架构中的 ...
- maven多个子项目、父项目之间的引用问题
在项目时用到maven管理项目,在一个就项目的基础上开发新的项目:关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己查询的问题,解决了自己的疑惑. 问题 下面是一个简略的项 ...
- eclipse Reference 功能之——项目之间的引用
i'm sorry, i forgot this article where i found. that it is referenced. 以前也研究过Eclipse里Web Project引用Ja ...
- c# 项目之间循环引用vs弹窗提醒
circular dependencies in projects' graph ! Projects in cycle are:ProjectImp(Name:FrameWork.Entity,Pl ...
- Android学习笔记_71_Android 多个项目之间如何引用 项目怎样打jar包
一.将整个项目作为资源文件 1.需要将被应用的项目设置为库项目. 2.将该项目的配置文件中的四大组件清空,例如下面代码: <?xml version="1.0" encodi ...
- 两个Java项目之间相互调用
转自:http://dysfzhoulong.iteye.com/blog/1008747 一个项目A另一个项目B:(项目A和项目B都是Java写的项目) 在A项目中怎么调用B项目中的类和方法 有两种 ...
- 使用maven的profile切换项目各环境的参数
Java后端开发经常需要面对管理多套环境,一般有三种环境:开发,测试,生产. 各个环境之间的参数各不相同,比如MySQL.Redis等不同环境的host不一样,若每个环境都手动替换环境很容易出错,Ma ...
- 手动创建Maven项目并建立两个项目之间的依赖关系
用命令行快速建立maven项目 -> mvn:archetype:generate -> 直接回车或者自己输入你想生成的 -> groupId ->artifactId -&g ...
随机推荐
- easyui图标大全
.icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background:url('icons/edit_ad ...
- Python的内建比较函数cmp比较原理剖析-乾颐堂
cmp( x, y):比较2个对象,前者小于后者返回-1,相等则返回0,大于后者返回1. Python的cmp比较函数比较原理 Python的cmp函数可以比较同类型之间,或者不同数据类型之间.然后根 ...
- toFixed
1,toFixed要使用与Number数据类型 2.parseInt将字符串转换为整形 3.parseFloat将字符串转换为浮点型
- [BAT] 通过批处理加host
echo. >> %WINDIR%\system32\drivers\etc\hosts & echo xxx.xxx.xxx.xx test_host >> %WIN ...
- 单一入口及MVC目录规范
单一入口指在一个web应用程序中,所有的请求都是指向一个脚本文件,例如我们经常看到某一个网站所有的页面都是index.php?xxxx这样的形式.所有对使用程序的访问都是必须通过这个入口. 目录规范:
- 02 Transcribing DNA into RNA
Problem An RNA string is a string formed from the alphabet containing 'A', 'C', 'G', and 'U'. Given ...
- 【转】C语言中DEFINE简介及多行宏定义
要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定 ...
- Centos6 hadoop2.6.0安装笔记
系统环境: linux:Centos6-64bit hadoop:hadoop2.6.0 jdk:1.6.45 集群方式安装 一台master,3台slave master 192.168.111.1 ...
- 敏捷软件开发:原则、模式与实践——第9章 OCP:开放-封闭原则
第9章 OCP:开放-封闭原则 软件实体(类.模块.函数等)应该是可以扩展的,但是不可修改. 9.1 OCP概述 遵循开放-封闭原则设计出的模块具有两个主要特征: (1)对于扩展是开放的(open f ...
- 编写高质量代码改善C#程序的157个建议——建议85:Task中的异常处理
建议85:Task中的异常处理 在任何时候,异常处理都是非常重要的一个环节.多线程与并行编程中尤其是这样.如果不处理这些后台任务中的异常,应用程序将会莫名其妙的退出.处理那些不是主线程(如果是窗体程序 ...