【问题标题】:How to exclude module-info.java in Netbeans (11)?Netbeans(11)中如何排除module-info.java?
【发布时间】:2019-06-19 15:03:25
【问题描述】:

我们的源代码仍然兼容 Java 8,但我们有两种不同的版本:一种是使用 JDK 11 和module-info.java 构建的。一个带有 JDK 8 且没有 module-info.java。使用 Maven,这很容易通过两个不同的配置文件来完成。对于 JDK 8 配置文件,不包括 module-info.java

  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
      ...
      <excludes>
        <exclude>module-info.java</exclude>
      </excludes>
    </configuration>
  </plugin>

当将此项目导入 Netbeans 11 并激活正确的配置文件时,excludes 的 maven 配置将被忽略。

【问题讨论】:

    标签: java maven netbeans java-9


    【解决方案1】:

    将排除作为基本配置的一部分。

    <pluginManagement>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                ...
                <excludes>
                    <exclude>**/module-info.java</exclude>
                </excludes>
            </configuration>
        </plugin>
    

    并覆盖 java-11 配置文件中的排除项

    <profile>
        <id>java-11</id>
        <pluginManagement>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <excludes combine.self="override"/>
                </configuration>
            </plugin>
    

    【讨论】:

    • 我尝试了您的解决方案。但是,我仍然收到 Netbeans 标记的错误:“-source 8 中不支持模块(使用 -source 9 或更高版本来启用模块)。这当然是正确的。这是问题所在:Netbeans 不会忽略该文件!
    【解决方案2】:

    如果有人偶然发现这个问题,我在这里指出了为什么它(可能)不起作用:

    Migrating maven project to modules - ignore module-info.java

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 1970-01-01
      • 2022-06-23
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      相关资源
      最近更新 更多