如图:

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环境下面多项目之间的引用的更多相关文章

  1. 适AT maven多个子项目、父项目之间的引用问题

    适AT   maven多个子项目.父项目之间的引用问题 在项目时用到maven管理项目,在一个就项目的基础上开发新的项目:关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己 ...

  2. .NET三层架构各项目之间的引用关系及如何添加引用?

    1.1三层之间的引用 整个.NET框架的项目创建完成之后,在开发之前,还需要建立各个项目之间的引用关系,以便在编写C#业务逻辑代码时调用相关项目的类库. 1.1.1 引用关系规则 .NET三层架构中的 ...

  3. maven多个子项目、父项目之间的引用问题

    在项目时用到maven管理项目,在一个就项目的基础上开发新的项目:关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己查询的问题,解决了自己的疑惑. 问题 下面是一个简略的项 ...

  4. eclipse Reference 功能之——项目之间的引用

    i'm sorry, i forgot this article where i found. that it is referenced. 以前也研究过Eclipse里Web Project引用Ja ...

  5. c# 项目之间循环引用vs弹窗提醒

    circular dependencies in projects' graph ! Projects in cycle are:ProjectImp(Name:FrameWork.Entity,Pl ...

  6. Android学习笔记_71_Android 多个项目之间如何引用 项目怎样打jar包

    一.将整个项目作为资源文件 1.需要将被应用的项目设置为库项目. 2.将该项目的配置文件中的四大组件清空,例如下面代码: <?xml version="1.0" encodi ...

  7. 两个Java项目之间相互调用

    转自:http://dysfzhoulong.iteye.com/blog/1008747 一个项目A另一个项目B:(项目A和项目B都是Java写的项目) 在A项目中怎么调用B项目中的类和方法 有两种 ...

  8. 使用maven的profile切换项目各环境的参数

    Java后端开发经常需要面对管理多套环境,一般有三种环境:开发,测试,生产. 各个环境之间的参数各不相同,比如MySQL.Redis等不同环境的host不一样,若每个环境都手动替换环境很容易出错,Ma ...

  9. 手动创建Maven项目并建立两个项目之间的依赖关系

    用命令行快速建立maven项目 -> mvn:archetype:generate -> 直接回车或者自己输入你想生成的 -> groupId ->artifactId -&g ...

随机推荐

  1. JVM垃圾回收算法及回收器详解

    引言 本文主要讲述JVM中几种常见的垃圾回收算法和相关的垃圾回收器,以及常见的和GC相关的性能调优参数. GC Roots 我们先来了解一下在Java中是如何判断一个对象的生死的,有些语言比如Pyth ...

  2. 洛谷 P2899 [USACO08JAN]手机网络Cell Phone Network

    题目描述 Farmer John has decided to give each of his cows a cell phone in hopes to encourage their socia ...

  3. Python守护进程(多线程开发)-乾颐堂

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  4. 熟悉相关电路,控制I/O口,且配置相关参数,LED,光敏,74LS164数码管

    1.掌握zigbee无线模块的基本工作电路. 2.上面芯片跟仿真器连接需要5根线,电源.地.复位.P2_1.P2_2. 输出的配置:a.首先要让相应IO口处于普通IO口模式,非片上外设的模式:b.让普 ...

  5. Smarty的基本语法------变量调节器

    (1)首字母大写capitalize示例:{$articleTitle|capitalize}(2)字符串连接 cat示例:{$articleTitle|cat:" yesterday.&q ...

  6. oracle imp使用

    1. 获取帮助 imp help=y 2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一 ...

  7. CodeForces 540D Bad Luck Island (DP)

    题意:一个岛上有石头,剪刀和布,规则就不用说了,问你最后只剩下每一种的概率是多少. 析:很明显的一个概率DP,用d[i][j][k]表示,石头剩下 i 个,剪刀剩下 j 个,布剩下 k 个,d[r][ ...

  8. 敏捷软件开发:原则、模式与实践——第13章 写给C#程序员的UML概述

    第13章 写给C#程序员的UML概述 UML包含3类主要的图示.静态图(static diagram)描述了类.对象.数据结构以及它们之间的关系,藉此表现出了软件元素间那些不变的逻辑结构.动态图(dy ...

  9. C#调用windows命令行(CMD)

    using System.Diagnostics; public static void StartCmd(String command){Process p = new Process();p.St ...

  10. c语言和java以及安卓和苹果

    苹果手机是本地,没有中间环节,速度快,基于Linux系统 安卓是通过虚拟机,影响速度 就像c语言和java c适用于架构小的地方,因为直接编译运行 而java用于架构比较大的地方,启动慢,启动之后效率 ...