温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java模块怎样导出

发布时间:2026-09-19 05:04:16 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Java 里“模块(Module)”通常指 Java 9 引入的 JPMS(Java Platform Module System),也可能是 Maven / Gradle 多模块项目。下面分情况说明“怎样导出”。


一、Java 平台模块(JPMS,module-info.java)

1️⃣ 导出包(最常见)

在 module-info.java 中用 exports:

module com.example.mylib {
    exports com.example.mylib.api;
}

含义:

  • com.example.mylib.api 包可以被其他模块访问
  • 未导出的包,其他模块无法访问

2️⃣ 仅对指定模块导出

module com.example.mylib {
    exports com.example.mylib.spi to com.example.app;
}

3️⃣ 导出并使用服务(SPI)

module com.example.mylib {
    exports com.example.mylib.api;
    provides com.example.spi.Service with com.example.mylib.impl.ServiceImpl;
}

二、编译并“导出”为模块(jar)

1️⃣ 编译

javac -d out \
  src/com.example.mylib/module-info.java \
  src/com.example.mylib/com/example/mylib/*.java

2️⃣ 打包为模块化 jar

jar --create \
    --file mylib.jar \
    --module-version 1.0 \
    -C out .

✅ 生成的 mylib.jar 就是可导出的 Java 模块


三、Maven 多模块项目“导出”

如果你是 Maven 多模块项目:

父模块

<modules>
    <module>common</module>
    <module>service</module>
</modules>

子模块(要被其他模块使用)

<artifactId>common</artifactId>
<version>1.0.0</version>

其他模块:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>common</artifactId>
    <version>1.0.0</version>
</dependency>

打包:

mvn clean install

✅ install 后模块就“导出”到本地仓库了


四、Gradle 多模块导出

// settings.gradle
include 'common', 'service'
// service/build.gradle
dependencies {
    implementation project(':common')
}

五、常见误解澄清

说法 正确理解
“导出 module” 实际是 导出 package
jar 就是模块 只有含 module-info.class 才是 JPMS 模块
private 包能访问 ❌ 不导出就不能访问

六、你可以告诉我

  • ✅ 是 JPMS 模块 还是 Maven/Gradle 模块?
  • ✅ 想“导出给别人用”还是“打包发布”?
  • ✅ 用在 Spring / 普通 Java / 微服务?

我可以直接给你完整示例工程结构。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手