如何配置moditect-maven-plugin以在模块化应用程序中使用自动值库?

Gjvatsalya

我正在尝试构建模块化应用程序,并且试图使用moditect-maven-plugin来使用自动值库(非模块化)。

根据此处的说明,我想到了以下pom.xml:

<?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>

<groupId>org.example</groupId>
<artifactId>moditect-test</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>com.google.auto.value</groupId>
        <artifactId>auto-value-annotations</artifactId>
        <version>${auto-value.version}</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <annotationProcessorPaths>
                    <path>
                        <groupId>com.google.auto.value</groupId>
                        <artifactId>auto-value</artifactId>
                        <version>${auto-value.version}</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.moditect</groupId>
            <artifactId>moditect-maven-plugin</artifactId>
            <version>1.0.0.Beta2</version>
            <executions>
                <execution>
                    <id>generate-module-info</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate-module-info</goal>
                    </goals>
                    <configuration>
                        <modules>
                            <module>
                                <artifact>
                                    <groupId>com.google.auto.value</groupId>
                                    <artifactId>auto-value-annotations</artifactId>
                                    <version>${auto-value.version}</version>
                                </artifact>
                                <moduleInfo>
                                    <name>com.google.auto.value.annotations</name>
                                    <exports>
                                        com.google.auto.value;
                                        *;
                                    </exports>
                                </moduleInfo>
                            </module>
                        </modules>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<properties>
    <maven.compiler.source>13</maven.compiler.source>
    <maven.compiler.target>13</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <auto-value.version>1.7</auto-value.version>
</properties>

重要的部分是moditect-maven-plugin配置。由于需要com.google.auto.value.AutoValue注解,因此导出该包,然后为模块指定一个相关名称。

仅供参考,这是我在其中使用注释的类:

package com.example.moditect.test;

import com.google.auto.value.AutoValue;

@AutoValue
abstract class Animal {

    abstract String name();
    abstract int numberOfLegs();

    static Builder builder() {
        return new AutoValue_Animal.Builder();
    }

    @AutoValue.Builder
    abstract static class Builder {
        abstract Builder setName(String value);
        abstract Builder setNumberOfLegs(int value);
        abstract Animal build();
    }
}

...这module-info.java是我的应用程序文件:

module com.example.moditect.test {
    requires com.google.auto.value.annotations;
}

但是,当我运行时mvn clean installmodule not found出现错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project moditect-test: Compilation failure
[ERROR] /home/someuser/development/workspace/moditect-test/src/main/java/module-info.java:[2,35] module not found: com.google.auto.value.annotations

看来moditect-maven-plugin正在根据我运行时输出的以下日志进行工作mvn clean install

[INFO] --- moditect-maven-plugin:1.0.0.Beta2:generate-module-info (generate-module-info) @ moditect-test ---
writing to /home/someuser/development/workspace/moditect-test/target/moditect/auto.value.annotations/module-info.java
[INFO] Created module descriptor at /home/someuser/development/workspace/moditect-test/target/generated-sources/modules/com.google.auto.value.annotations/module-info.java

值得一提的是,此自动值库的生成模块信息(来自上面记录的位置):

module com.google.auto.value.annotations {
    exports com.google.auto.value;
    exports com.google.auto.value.extension.memoized;
}

所以我需要一些帮助找出我做错了什么。我假设我只是弄乱了moditect-maven-plugin的配置,但是我不确定如何。

Gjvatsalya

我犯了一个愚蠢的错误,使用目标generate-module-info而不是目标add-module-info只需用正确的目标切换目标即可解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Maven中使用Typescript配置Angular2应用程序?

来自分类Dev

如何在棱镜WPF模块化应用程序中首先使用代码动态创建数据库表?

来自分类Dev

如何在棱镜WPF模块化应用程序中首先使用代码动态创建数据库表?

来自分类Dev

如何模块化angularjs应用程序?

来自分类Dev

启动和配置WildFly服务器,并在1次maven运行中使用wildfly-maven-plugin部署应用程序

来自分类Dev

如何使用JNI_CreateJavaVM运行模块化Java应用程序

来自分类Dev

如何使用函数、类和 req.pipe 模块化 Express 应用程序?

来自分类Dev

如何使用模块化闪亮应用程序读取、显示和下载 Excel

来自分类Dev

使用Spring Boot和多模块进行Maven配置-在Intellij中运行应用程序

来自分类Dev

Maven-如何仅构建应用程序的某些模块?

来自分类Dev

如何配置Maven以使用Servlet 3

来自分类Dev

使用Gradle将模块化库发布到Maven

来自分类Dev

如何外部化Maven-checkstyle-plugin的checkstyle配置

来自分类Dev

如何外部化Maven-checkstyle-plugin的checkstyle配置

来自分类Dev

使用Maven配置HSQLDB

来自分类Dev

模块化应用程序模式:如何检查哪个是调用模块

来自分类Dev

Maven:在配备了Retrolambda-maven-plugin的应用程序中使用Java 8库,并在android-maven-plugin的DEX-ed应用程序中使用Java 8库

来自分类Dev

如何在想法中使用maven而不是iml运行应用程序

来自分类Dev

如何在 Grails 应用程序中使用 Nexus 而不是 maven

来自分类Dev

Rails:可配置的可扩展模块化应用程序

来自分类Dev

模块化Sinatra应用程序,可全局设置错误处理和配置

来自分类Dev

在模块化Java应用程序中配置ehCache的最佳实践

来自分类Dev

是否可以使用gluon的client-maven-plugin配置自定义mac osx应用程序图标集?

来自分类Dev

如何使用Jenkins部署SpringBoot Maven应用程序?

来自分类Dev

如何使用Maven创建最小的Java应用程序框架?

来自分类Dev

如何使用maven和tomcat部署Web应用程序?

来自分类Dev

如何为简单的Maven应用程序配置slf4j以正确显示日志?

来自分类Dev

如何编写干净的模块化express.js应用程序

来自分类Dev

如何构建Java桌面应用程序运行时模块化?

Related 相关文章

  1. 1

    如何在Maven中使用Typescript配置Angular2应用程序?

  2. 2

    如何在棱镜WPF模块化应用程序中首先使用代码动态创建数据库表?

  3. 3

    如何在棱镜WPF模块化应用程序中首先使用代码动态创建数据库表?

  4. 4

    如何模块化angularjs应用程序?

  5. 5

    启动和配置WildFly服务器,并在1次maven运行中使用wildfly-maven-plugin部署应用程序

  6. 6

    如何使用JNI_CreateJavaVM运行模块化Java应用程序

  7. 7

    如何使用函数、类和 req.pipe 模块化 Express 应用程序?

  8. 8

    如何使用模块化闪亮应用程序读取、显示和下载 Excel

  9. 9

    使用Spring Boot和多模块进行Maven配置-在Intellij中运行应用程序

  10. 10

    Maven-如何仅构建应用程序的某些模块?

  11. 11

    如何配置Maven以使用Servlet 3

  12. 12

    使用Gradle将模块化库发布到Maven

  13. 13

    如何外部化Maven-checkstyle-plugin的checkstyle配置

  14. 14

    如何外部化Maven-checkstyle-plugin的checkstyle配置

  15. 15

    使用Maven配置HSQLDB

  16. 16

    模块化应用程序模式:如何检查哪个是调用模块

  17. 17

    Maven:在配备了Retrolambda-maven-plugin的应用程序中使用Java 8库,并在android-maven-plugin的DEX-ed应用程序中使用Java 8库

  18. 18

    如何在想法中使用maven而不是iml运行应用程序

  19. 19

    如何在 Grails 应用程序中使用 Nexus 而不是 maven

  20. 20

    Rails:可配置的可扩展模块化应用程序

  21. 21

    模块化Sinatra应用程序,可全局设置错误处理和配置

  22. 22

    在模块化Java应用程序中配置ehCache的最佳实践

  23. 23

    是否可以使用gluon的client-maven-plugin配置自定义mac osx应用程序图标集?

  24. 24

    如何使用Jenkins部署SpringBoot Maven应用程序?

  25. 25

    如何使用Maven创建最小的Java应用程序框架?

  26. 26

    如何使用maven和tomcat部署Web应用程序?

  27. 27

    如何为简单的Maven应用程序配置slf4j以正确显示日志?

  28. 28

    如何编写干净的模块化express.js应用程序

  29. 29

    如何构建Java桌面应用程序运行时模块化?

热门标签

归档