0

我正在尝试在 Java 中创建一个由多个模块组成的新项目(遵循 Java 9 中引入的 Java 模块概念)。在其中一个模块中,我正在尝试使用 vert.x codegen 生成将公开给其他模块的服务。

现在的问题是,当我尝试编译服务模块时,出现以下错误:

module-info.java:[5,22] 未找到模块:io.vertx.codegen。

供您参考,我将放置我的模块配置(如 module-info.java 中所述)和我的 POM 文件。

模块信息.java:

module mo.com.test.daomodule {
    requires io.vertx.core;
    requires io.vertx.client.sql.mssql;
    requires io.vertx.client.sql;
    requires io.vertx.codegen;
    requires io.vertx.serviceproxy;
    requires org.apache.logging.log4j.core;
    requires org.apache.logging.log4j;
    
    exports mo.com.test.dao.db.service;
    exports mo.com.test.dao.db; 
}

我的pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>mo.com.test</groupId>
        <artifactId>MainProject</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    
     <properties>
         <vertx.version>4.2.1</vertx.version>
         <jdbc.version>9.4.0.jre11</jdbc.version>
         <log4j2api.version>2.14.1</log4j2api.version>
         <log4j2core.version>2.14.1</log4j2core.version>
     </properties>
    
    <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-stack-depchain</artifactId>
            <version>${vertx.version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependencies>
        
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-json-schema</artifactId>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-jdbc-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-mssql-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-codegen</artifactId>  
            <version>${vertx.version}</version>
            <classifier>processor</classifier>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-service-proxy</artifactId>
            <version>${vertx.version}</version>
        </dependency>
        
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>${jdbc.version}</version>
            <type>jar</type>
        </dependency>
        
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2api.version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2core.version}</version>
            <type>jar</type>
        </dependency>
    
    </dependencies>
    
    <groupId>mo.com.test</groupId>
    <artifactId>daomodule</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>
    <name>daomodule</name>
</project>

通过上面的检查,我在 POM 文件中添加了必要的导入,并根据需要在 module-info.java 中添加了包含 vert.x 模块。

不,我的问题是,我能做些什么来解决这个编译问题?我的 POM 或 module-info.java 上是否缺少任何内容?

4

0 回答 0