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

这个在单一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不存在这个问题。

时间: 2024-10-14 05:29:40

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

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

大家好嘞,今天闲着没事干开写写博客,记录一下Maven+SpringBoot的多模块设计和遇到的坑. 多模块设计 简单说明一下截止目前的需求: 需要RESTful API:对文章.标签.分类和评论等的CRUD 要前台展示: 首页.归档.文章具体页等 后台管理:添加文章.新增标签之类 简单分析可以简单设计一个模块来组织代码,比如就叫oyster-blog. 但显然有个问题,这么设计会让代码比较混乱,比如我不能在同一个类中处理所有的请求,也不能分成三个类分别实现这三个功能. 比较好的设计是分成三个包

新建一个兼容eclipse和myeclipse、IDEA都兼容的项目结构

以下观点为个人理解,没实践过,后续再实现. 思路: 1.eclipse和myeclipse.IDEA这些开发工具新建的各自的项目时,都有自己的一套思路,项目结构都有各自的特点. 2.如果是这些开发工具互相导入项目时,要按照各自开发工具的项目结构的特定进行修改,花大量的无用功. 3.如果组内成员使用的开发工具各自不统一,也是一个问题,或者项目历史上带来的开发工具不统一,也是问题. 解决思路: 1.引入maven进行构建项目. maven有标准一套构建目录,通过其新建的项目,无论eclipse和my

在eclipse创建和myeclipse一样结构的web项目

之前一直使用myeclipse,现在换成eclipse,但是创建的新项目让我很不习惯,下面这个方法可以解决. 创建好的项目结构如下图所示,不过看着还是很别扭,我们window→show view→other 搜索package explore并打开 好了这个目录结构我们就很顺眼了!!!

AndroidStudio笔记--项目结构与Eclipse的一些区别

AndroidStudio中的项目结构与Eclipse中有所区别: 以一个名为test的项目为例,文件对比: Eclipse中项目文件----AndroidStudio中的文件 * AndroidManifest.xml  =>  test\src\main\AndroidManifest.xml * assets\  =>  test\src\main\assets\ * res\  =>  test\src\main\res\ * src\  =>  test\src\main

将Eclipse中的java项目转移到Linux下运行

有些java项目考虑到性能的需求或者需要调用shell脚本等,需要在Linux系统下运行.完成Eclipse中的java项目到Linux系统下迁移需要一些操作: 1.将Eclipse下的java项目源码打包成jar,可以有两种方式,但是建议第一种有利于管理关联的jar包. 方法1:使用maven 1)保证该java项目是一个maven项目,关联的jar包都位于lib下并已引入到.classpath和pom.xml中. 2)右键项目->Debug->Debug Configurations,在B

ubuntu下eclipse不能新建java项目 java project

在ubuntu系统中,装了eclipse,打开过,后来装了JDK,却不能新建java项目.重装了几遍eclipse也没有用. 原因分析: 之所以新建找不到java项目是因为eclipse有残留文件导致重新安装的时候开发环境没有配置好,我们要做的就是彻底删除eclipse并重新安装. 解决办法: 1. 假如现在你的Eclipse是安装着的,先打开控制台 Ctrl+Alt+T 输入命令:sudo apt-get update && sudo apt-get upgrade 说明:此命令是更新源

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

eclipse没有像myeclipse那样,添加web项目时会自动部署到Tomcat的webapps目录下. 而是部署到了eclipse的.metadata\.plugins\org.eclipse.wst.server.core\tmp0或.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps下. 我们就是的思路就是改变web项目部署的地址 解决方法如下 参考文章:https://blog.csdn.net/woshixuy

Eclipse+Maven创建webapp项目

原文地址:http://www.cnblogs.com/candle806/p/3439469.html Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new-->other,如下图找到maven project 2.选择maven project,显示创建maven项目的窗口,勾选如图所示,Create a simple project 3.输入maven项目的基本信息,如下图所示: 4.完成maven项目的创建,生成相应的maven项目结果,如下所

eclipse创建maven web项目

eclipse创建maven web项目: 1.安装eclipse maven插件 2.新建maven project选择webapp模板. 3.改造为maven文档结构. 4.添加项目的JAVAEE支持 这里我选择的web modul版本为2.5,因为我平时使用的tomcat版本为tomcat 6.在右侧的runtime处可以配置tomcat 如果web modul版本选择3.0的话,tomcat 6是不能选择的. 添加web modul后目录结构发生了变化: 将WebContent目录内的复