Uploaded image for project: 'Commons BeanUtils'
  1. Commons BeanUtils
  2. BEANUTILS-560

Add support for JPMS

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0
    • None
    • None

    Description

      The commons-beanutils jar doesn't support Java modules:

      [INFO] --- maven-compiler-plugin:3.11.0:compile (compile-java9) @ opencsv ---
      [WARNING] ***************************************************************************************************************************************************
      [WARNING] * Required filename-based automodules detected: [commons-beanutils-1.9.4.jar]. Please don't publish this project to a public artifact repository! *
      [WARNING] ***************************************************************************************************************************************************

      At the very least the manifest could define an Automatic-Module-Name but preferably the project should be configured to build a multi-release jar that can support Java 8 while also compiling a module-info targeting a newer JDK such as 11. 

       

      here is an example maven profile that can be used to ensure that a module-info gets included when a project is built with JDK 9 or above:

      <profile>
          <id>jpms</id>
          <activation>
              <jdk>[9,)</jdk>
          </activation>
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <executions>
                          <execution>
                              <id>compile-java9</id>
                              <phase>compile</phase>
                              <goals>
                                  <goal>compile</goal>
                              </goals>
                              <configuration>
                                  <release>9</release>
                                  <compileSourceRoots>
                                      <compileSourceRoot>${project.basedir}/src/main/java9</compileSourceRoot>
                                  </compileSourceRoots>
                                  <multiReleaseOutput>true</multiReleaseOutput>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-jar-plugin</artifactId>
                      <version>3.3.0</version>
                      <configuration>
                          <archive>
                              <manifestEntries>
                                  <Multi-Release>true</Multi-Release>
                              </manifestEntries>
                              <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                          </archive>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </profile> 

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              singingbush Samael Bate
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: