0 0

Maven项目依赖及Classpath下的加载问题5

对这方面有很多问题,先说一下我做的测试,再说问题。
测试准备:
1. 有A、B、C是3个项目,其中A、B是普通项目,C是web项目
2. B、C之间无关,并且都依赖于A
3. A、B、C都在各自的classpath下有自己的配置文件

测试过程:
测试1. 若A是 关闭 的,此时从Junit启动B,则A以jar包的形式成为依赖,在B的classpath下可以直接加载到jar包中A的配置文件,log中显示的加载路径为maven仓库中

测试2. 若A是 打开 的,此时从Junit启动B,则A以项目的形式成为依赖,在B的classpath下可以直接加载到A的配置文件;log中显示加载路径为依赖项目路径下

测试3. 若A是 关闭 的,此时从eclipse的Server启动C,则A以jar包的形式成为依赖,在C的classpath下可以直接加载到A的配置文件;log中显示的加载路径为XXX/CodeSpace/Java/Program/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/C/WEB-INF/lib/A.jar中

测试4. 若A是 打开 的,此时从eclipse的Server启动C,则A以项目的形式成为依赖,这里会出现问题,在C的classpath下加载不到到A的配置文件(注意此时C的lib目录下,是有A的jar包的,但就是加载不到,像消失了一样,难道lib目录不属于classpath???)

我的疑问:
1.  为什么普通项目之间的classpath可以直接相互加载?感觉像是一个classpath一样,但是web的不行呢,希望对比一下普通项目和web项目classpath的区别?
2.  测试3里面的加载目录为什么在.metadata文件夹下?这是什么?不是应该在C项目的lib目录下吗?
3.  测试4中为什加载不到啊?lib应该就是classpath下的吧?而且为什么仅仅把A关闭,就又可以从jar中加载到了?
4.  怎么让测试4里面可以加载到配置文件???(这个最关键,请一定要解答一下)


不好意思,本人新手,问题有点多,希望回答的人,尽量说详细点,最好能说明原理,非常感谢。。。
2013年10月19日 01:35
目前还没有答案

相关推荐

    ModRunJava类加载器可以直接从Maven存储库加载并运行类

    1. **实时依赖解析**:当类需要加载时,ModRunJava会自动从Maven仓库下载对应的JAR包,解决了类的依赖问题。这意味着开发环境可以与生产环境保持一致,减少了因环境不匹配导致的问题。 2. **轻量级部署**:由于不...

    Maven常见问题解答

    5. **Maven创建的项目无法识别Maven Dependency引用**:有时候,Eclipse可能无法自动识别Maven依赖。此时,需要手动在项目中添加Maven Classpath Container。在`.classpath`文件中添加: - `...

    maven资源zip包连接阿里maven库各种包齐全

    描述中提到的“邮件包”可能指的是用于发送电子邮件的Maven依赖,如javamail-api或javax.mail。而“OSS上传包”可能是指用于上传文件到阿里云对象存储服务(OSS)的SDK,如aliyun-sdk-oss。这些依赖可以通过Maven...

    IDEA11 Maven3快速入门及应用

    Maven最大的特点之一就是它有一个全球免费的中央仓库,这个仓库包含了大量开源项目所需的依赖库,开发者可以通过简单的配置就能将这些依赖加入到自己的项目中。 #### Maven准备 在使用Maven之前,需要做一些准备...

    Classpath Variable 解决办法

    - 使用构建工具(如Maven或Gradle)管理依赖,它们会自动处理Classpath。 - 对于大型项目,考虑使用模块化或Java模块系统(Jigsaw)来组织和隔离类路径。 通过理解Classpath的工作原理和配置方式,以及解决常见问题...

    maven eclipse插件

    1. **项目导入**:Maven Eclipse 插件允许用户将现有的 Maven 项目导入到 Eclipse 工作空间中,只需简单几步操作,即可自动创建项目结构并加载依赖。 2. **同步 pom.xml**:当 pom.xml 文件发生改变时,插件会自动...

    自学如何使用框架的工具classpath

    8. **动态加载**:在某些场景下,如插件系统,你可能需要在运行时动态修改`classpath`,这可以通过`ClassLoader`实现。 9. **理解依赖**:当你添加一个新的框架到项目中,你需要确保所有相关的依赖都被包含在`...

    Path和classpath配置详解

    例如,Maven的`pom.xml`文件中定义的依赖会自动被添加到Classpath中。 对于源码理解,了解`src/main/java`和`src/test/java`这样的目录结构很重要。这些是Maven约定的源代码和测试代码目录,编译后会被放置在不同的...

    Maven解决jar冲突调试步骤

    2. **查看Maven依赖树**:可以通过运行`mvn dependency:tree`命令查看当前项目的依赖树,了解所有直接或间接依赖的库及其版本。 3. **排除冲突的依赖**:在POM文件中排除不需要的版本。对于本例来说,我们需要在`...

    maven学习文档

    通过以上内容可以看出,Maven不仅是一个构建工具,还是一个强大的项目管理和构建工具,它能够帮助开发者高效地管理项目依赖和构建流程。掌握Maven的基本概念和使用方法对于Java开发者来说非常重要。

    用谷歌的closure-compiler + maven-antrun-plugin

    首先,需要在项目的`pom.xml`文件中添加Closure Compiler的Maven依赖。你可以从中央仓库搜索最新的版本号,并将其添加到`<dependencies>`部分。 2. **配置Antrun插件** 接下来,我们需要在`pom.xml`的`<build>...

    解决android studio 3.0 加载项目过慢问题--maven仓库选择

    解决 Android Studio 3.0 加载项目过慢问题 - Maven 仓库选择 Android Studio 3.0 加载项目过慢问题是许多开发者遇到的一个常见的问题。这个问题的出现主要是由于 Maven 仓库的配置不当所致。在本文中,我们将介绍...

    SpringBoot加载外部依赖过程解析

    该示例项目使用了maven来构建,并使用SpringBoot来加载外部依赖项。在项目中,我们使用了application.properties文件来配置外部依赖项,并使用ResourceBundle.getString()方法来读取这些配置项。然而,在部署过程中...

    maven使用总结

    #### 六、Maven依赖管理 1. **依赖查找:** Maven项目可以通过中央仓库网站(如`http://mvnrepository.com/`)查找所需库的坐标。 2. **本地项目依赖:** Maven还支持项目间的依赖,无需将依赖的项目安装到中央仓库...

    springmvc+maven+mybatis.doc

    - 一个典型的`springmvc+maven+mybatis`项目结构包括:src/main/resources下的配置文件(如`applicationContext.xml`,`mybatis-config.xml`),src/main/java下的业务逻辑和服务层,src/main/webapp下的Web资源...

    springBootNoMaven.zip

    在这个项目中,由于没有使用Maven或Gradle等构建工具,开发者需要手动管理依赖,这通常通过将必要的jar文件添加到类路径(classpath)下完成。 定时任务功能在Spring Boot中通常通过Spring的Task Execution和...

    maven2+struts2+spring3使用maven一步步搭建ssissh框架.pdf

    5. **项目结构**:创建的项目路径图未给出具体细节,但通常情况下,Maven项目会有标准的目录结构,包括`src/main/java`存放源代码,`src/main/resources`存放资源配置文件,`src/main/webapp`存放Web应用相关的资源...

    maven学习笔记

    Maven 的主要功能包括构建、依赖管理和项目信息管理。 - **安装步骤**: - **确认 JDK 安装**:确保已安装 JDK 并正确配置了 Java 环境变量。 - **JAVA_HOME**:设置 JAVA_HOME 环境变量指向 JDK 安装目录,例如...

    java ClassPath 构建

    - "源码"标签可能暗示了有关构建ClassPath的自定义代码,例如使用Java的`ClassLoader`或第三方库如Apache Maven或Gradle来管理依赖和ClassPath。 - "工具"可能指的是可以简化ClassPath管理的工具,比如IDEs...

    错误:找不到或无法加载主类com.xxx.xxx.Application(完美解决)

    确保所有依赖都被添加到项目中,并且Maven或Gradle的构建过程成功完成。 解决这个问题的方法如下: 1. **检查并修复类路径**:确保所有相关的库和类文件都在类路径中,包括你的主类。 2. **更新Maven配置**:在`...

Global site tag (gtag.js) - Google Analytics