JProjectTwo能否直接访问JProjectOne的公共类?是否需调整配置?
两个Java项目间公共类的访问问题解答
嘿,这个问题得看你这两个项目的结构和配置情况来分情况说哈:
默认情况:不能直接访问
哪怕JProjectOne里的类是public修饰的,只要JProjectTwo没有把JProjectOne作为依赖引入,JVM在编译或运行JProjectTwo的时候根本找不到这些类的字节码文件,自然没法直接访问。另外还要踩个坑:如果你的公共类放在默认包(就是没有package声明的包)里,哪怕后续配置了依赖,跨项目也没法访问,所以一定要给公共类指定明确的包名。
要访问的话,得做这些配置调整
不同的构建工具配置方式不一样,给你列几个最常用的场景:
1. Maven项目场景
- 先把JProjectOne安装到本地Maven仓库:在JProjectOne的根目录执行命令
mvn clean install - 然后在JProjectTwo的
pom.xml里添加依赖:
如果两个项目本来就在同一个Maven多模块项目里,直接用模块依赖更省心,不用单独install到本地。<dependency> <groupId>你的项目groupId(比如com.yourcompany)</groupId> <artifactId>JProjectOne</artifactId> <version>对应版本号</version> </dependency>
2. Gradle项目场景
- 如果是多模块项目,直接在JProjectTwo的
build.gradle里加依赖:dependencies { implementation project(':JProjectOne') } - 如果是单独的项目,先把JProjectOne打包成Jar文件,然后在JProjectTwo的
build.gradle里引入:dependencies { implementation files('path/to/JProjectOne.jar') // 或者如果Jar放在libs目录,用这个: // implementation fileTree(dir: 'libs', include: ['*.jar']) }
3. 纯IDE项目(无构建工具)
在IDE里把JProjectOne设为JProjectTwo的依赖项目就行:
- IntelliJ IDEA:打开JProjectTwo的「Project Structure」→「Modules」→「Dependencies」,点击+号选择「Module Dependency」,选中JProjectOne
- Eclipse:右键JProjectTwo→「Build Path」→「Add Projects」,选中JProjectOne
内容的提问来源于stack exchange,提问作者Shane Francis
相关产品推荐
相关产品推荐

