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)