在 Java 里“打包 Module 模块”通常有两种理解,我分别说明,你可以对号入座:
假设目录结构:
src/
└─ com.example.mymodule/
├─ module-info.java
└─ com/example/Main.java
编译:
javac -d out \
src/com.example.mymodule/module-info.java \
src/com.example.mymodule/com/example/Main.java
jar --create \
--file mymodule.jar \
--main-class com.example.Main \
-C out .
✅ 这个 JAR 里包含 module-info.class,就是模块化 JAR
查看模块信息:
jar --describe-module --file mymodule.jar
java -p mymodule.jar -m com.example.mymodule
或:
java -jar mymodule.jar
jlink \
--module-path $JAVA_HOME/jmods:mymodule.jar \
--add-modules com.example.mymodule \
--output myapp
运行:
myapp/bin/java -m com.example.mymodule
parent/
├─ pom.xml
├─ module-a/
├─ module-b/
在父 pom.xml:
<modules>
<module>module-a</module>
<module>module-b</module>
</modules>
打包:
mvn clean package
每个 module 会生成自己的 jar
settings.gradle:
include 'moduleA', 'moduleB'
打包:
gradle build
| 场景 | 打包方式 |
|---|---|
| Java 9 Module | jar --create |
| Maven Module | mvn package |
| Gradle Module | gradle build |
| 微服务模块 | 各自打 JAR / Docker |
如果你能告诉我:
我可以直接给你完整可复制的命令或配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。