Samael Bate created BEANUTILS-560:
-------------------------------------

             Summary: Add support for JPMS
                 Key: BEANUTILS-560
                 URL: https://issues.apache.org/jira/browse/BEANUTILS-560
             Project: Commons BeanUtils
          Issue Type: Bug
            Reporter: Samael Bate


The commons-beanutils jar doesn't support Java modules:
{code:java}
[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] 
***************************************************************************************************************************************************{code}
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:
{code:java}
<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> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to