这个在单一classLoader时,不会有问题。如果多classloader下会有问题。

假设工程有两个模块,module2 依赖module1

当我们执行mvc eclipse:eclipse后,然后查看module2下的.classpath文件,会发现 : <classpathentry kind="src" path="/module1"/>。

如果module1中pom.xml,我们声明了一个第三方依赖(假设为 servlet-api)scope:provided。 你会发现此时module2中的buildpath还是会有这个第三方依赖(servlet-api)。即使你在module2的pom.xml中在module1排除servlet-api实际还是传递存在着的。

通常使用单一appClassLoader情况下,你可能不需要关注这个问题。但如果依靠这些classpath分classLoader问题,就会出现问题。

解决方法:

对项目主pom中声明maven-eclipse-plugin并配置如下,阻止这种模块引用。

具体说明如下: https://maven.apache.org/plugins/maven-eclipse-plugin/examples/prevent-module-references.html

重新执行mvn eclipse:eclipse 后,再查看module2的.classpath文件,<classpathentry kind="var" path="M2_REPO/com/xxxx.../{version}/module1-{version}.jar"。此时再检查buildpath就干净了。

注:在intellj idea不存在这个问题。

eclipse在多modules项目结构下避免模块间依赖引用的场景的更多相关文章

  1. 在maven项目结构下对于Resources目录下文件的存取

    在maven项目中,文件结构如下: proj ---src ----main ----java ----Main.java ----resources ----userFile.properties ...

  2. Eclipse+Maven构建web项目及部署时Maven lib依赖问题的解决

    目录 Eclipse中m2e插件构建web项目的步骤 Maven工具构建web项目再导入Eclipse的步骤 [一].Eclipse中m2e插件构建web项目的步骤 第一步:创建项目,按照 New – ...

  3. JavaWeb项目WebContent下的资源文件无法引用

    JavaWeb项目引用资源的时候尽量使用绝对路径. 作者在帮助同学完善其JavaWeb项目端页面的时候,css样式文件怎么也引用不了. 第一个想到的是:是不是文件路径写错了? 于是,作者换了绝对路径, ...

  4. Eclipse在Project Explorer项目归组及分模块显示

    普通项目: 1.[Package Explorer]->[filter]->[Top Level Elements]->[Working Sets] 2.[Package Explo ...

  5. 记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)

    大家好嘞,今天闲着没事干开写写博客,记录一下Maven+SpringBoot的多模块设计和遇到的坑. 多模块设计 简单说明一下截止目前的需求: 需要RESTful API:对文章.标签.分类和评论等的 ...

  6. Eclipse+Maven创建webapp项目<一><二><三>

    转-http://www.cnblogs.com/candle806/p/3439469.html Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new ...

  7. Go项目结构和模块导入

    Go项目结构和模块导入 golang项目结构与其他语言类似,但是仍然有一些需要注意的地方. 项目结构 环境配置 go 命令依赖一个重要的环境变量:$GOPATH,它表示GO项目的路径,如下设置 exp ...

  8. 在本机eclipse中创建maven项目,查看linux中hadoop下的文件、在本机搭建hadoop环境

    注意 第一次建立maven项目时需要在联网情况下,因为他会自动下载一些东西,不然突然终止 需要手动删除断网前建立的文件 在eclipse里新建maven项目步骤 直接新建maven项目出了错      ...

  9. eclipse部署的web项目没有添加到Tomcat的webapps目录下解决方法

    eclipse没有像myeclipse那样,添加web项目时会自动部署到Tomcat的webapps目录下. 而是部署到了eclipse的.metadata\.plugins\org.eclipse. ...

随机推荐

  1. Charles Proxy代理使用简要说明

    1.去官网下载免费试用版: http://www.charlesproxy.com/ (需要机器有Java运行时)或下载破解注册版:http://charles.iiilab.com/,安装后开启默认 ...

  2. 使用faker 生成中文测试数据

    https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/zh_CN/Address.php 常用的类型都在里面. 下面是一 ...

  3. Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...

  4. background相关属性

    background-origin: 规定 background-position 属性相对于容器的哪一部分来定位. padding-box 背景图像相对于内边距框来定位:(默认) border-bo ...

  5. javaWeb学习总结(4)- HttpServletResponse

    一.简介: Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和 ...

  6. Nodejs进阶:核心模块Buffer常用API使用总结

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处 ...

  7. 导入数据到mysql服务器上,报错,以及停止的解决办法

    两次都是因为磁盘不够,这次得以解决: =>下面是可能会用到的命令行: 1.查看磁盘占用大小: df -hl 发现:   从上面看出来,根目录 / 下的东西沾满了  /dev/sda1  但是 / ...

  8. python脚本 随机定位坐标

    import mathimport randomdef rad(dg):    return (dg * math.pi / 180)def deg(rd):    return (rd * 180 ...

  9. windows 配置 Scheme + Emacs 编程环境

    软件下载列表: Emacs Racket (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 C:\Users\用户名\AppData\Roaming\ ...

  10. Ubuntu安装genymotion模拟器步骤

    1.安装VitrualBox genymotion模拟器需要有VirtualBox环境,打开终端(ctrl + alt + T),执行以下命令: sudo apt-get install virtua ...