蔡琪暢 2017-09-24 22:25 采纳率: 0%
浏览 450

java9 jar转换模块问题

请问如何解决jar名不能转换成module名的问题,比如hibernate-persistence-jpa-2.1-api-1.0.0.Final.jar?目前很多库都不是模块的。。。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-06 23:34
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Java 9中,你可以使用org.gradle.api.Project接口中的getModule()方法来获取当前项目的模块。然后,你可以将这个模块的名字设置为jar文件的名称。以下是一个示例:

    Project project = GradleApi.create().projects().single();
    String moduleName = project.getModule().getName();
    
    // 如果你需要把模块名添加到jar名后面,可以这样做:
    // String moduleNameWithSuffix = moduleName + "-module";
    

    但是,请注意,如果你的项目包含多个模块,并且你想要将它们都打包在一起,那么你可能需要创建一个名为META-INF/services/your-module-name的自定义服务描述文件。这个文件应该包含你的所有模块所需的类和包信息。

    例如,如果有一个名为hibernate-persistence-jpa-2.1-api-1.0.0.Final.jar的jar,你可能需要创建一个名为META-INF/services/org.hibernate.service.internal.ServiceRegistry.java的文件,内容如下:

    org.hibernate.service.internal.ServiceRegistry
    

    这样,当Gradle解析这个jar时,它就会知道这个jar是属于hibernate-persistence-jpa-2.1-api-1.0.0.Final这个模块的。

    评论

报告相同问题?