Skip to content

Commit

Permalink
Keep module plugin for modular builds (i.e.java 9+)
Browse files Browse the repository at this point in the history
  • Loading branch information
Morten Haraldsen committed Feb 12, 2025
1 parent 92697cb commit da383dd
Showing 1 changed file with 98 additions and 83 deletions.
181 changes: 98 additions & 83 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ limitations under the License.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.3.15</version>
<version>1.5.16</version>
<scope>test</scope>
</dependency>
</dependencies>
Expand Down Expand Up @@ -210,48 +210,12 @@ limitations under the License.
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.8</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-small.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<attach>true</attach>
<options>
<option>-keepdirectories META-INF/**</option>
<option>-dontnote</option>
<option>-allowaccessmodification</option>
<option>-repackageclasses</option>
<option>-flattenpackagehierarchy a</option>
<option>-keepattributes Signature</option>
<option>-keep public class com.ethlo.time.ParseConfig { *; }</option>
<option>-keep public class com.ethlo.time.ITU { *; }</option>
<option>-keep public class com.ethlo.time.DateTime { *; }</option>
<option>-keep public class com.ethlo.time.Field { *; }</option>
<option>-keep public class com.ethlo.time.TemporalType { *; }</option>
<option>-keep public class com.ethlo.time.TemporalConsumer { *; }</option>
<option>-keep public class com.ethlo.time.TemporalHandler { *; }</option>
<option>-keep public class com.ethlo.time.TimezoneOffset { *; }</option>
<option>-keep public class com.ethlo.time.DateTimeParsers { *; }</option>
<option>-keep public class com.ethlo.time.DateTimeParser { *; }</option>
<option>-keep public class com.ethlo.time.DateTimeTokens { *; }</option>
<option>-keep public class com.ethlo.time.token.DateTimeToken { *; }</option>
</options>
<libs>
<lib>${java.home}/jmods/java.base.jmod</lib>
</libs>
<instructions>
<Export-Package>
com.ethlo.time;com.ethlo.time.token;
</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
Expand Down Expand Up @@ -286,48 +250,76 @@ limitations under the License.
</properties>
<profiles>
<profile>
<id>module-info</id>
<id>readme</id>
<activation>
<activeByDefault>false</activeByDefault> <!-- This profile is not active by default -->
</activation>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<filtering>true</filtering>
<directory>${project.basedir}/src/site</directory>
<includes>
<include>README.md</include>
</includes>
<targetPath>/</targetPath>
</resource>
</resources>
</build>
</profile>
<profile>
<id>proguard</id>
<activation>
<jdk>[9,22)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.moditect</groupId>
<artifactId>moditect-maven-plugin</artifactId>
<version>1.2.2.Final</version>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<id>add-module-info</id>
<phase>package</phase>
<goals>
<goal>add-module-info</goal>
<goal>proguard</goal>
</goals>
<configuration>
<jvmVersion>9</jvmVersion>
<module>
<moduleInfo>
<name>com.ethlo.time.itu</name>
<exports>
!com.ethlo.time.internal*;
*;
</exports>
</moduleInfo>
</module>
</configuration>
</execution>
</executions>
<configuration>
<obfuscate>true</obfuscate>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}-small.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<attach>true</attach>
<options>
<option>-dontnote</option>
<option>-allowaccessmodification</option>
<option>-repackageclasses</option>
<option>-flattenpackagehierarchy a</option>
<option>-keepattributes Signature</option>
<option>-keep class META-INF.versions.9.module-info { *; }</option>
<option>-keep public class com.ethlo.time.ParseConfig { *; }</option>
<option>-keep public class com.ethlo.time.ITU { *; }</option>
<option>-keep public class com.ethlo.time.DateTime { *; }</option>
<option>-keep public class com.ethlo.time.Field { *; }</option>
<option>-keep public class com.ethlo.time.TemporalType { *; }</option>
<option>-keep public class com.ethlo.time.TemporalConsumer { *; }</option>
<option>-keep public class com.ethlo.time.TemporalHandler { *; }</option>
<option>-keep public class com.ethlo.time.TimezoneOffset { *; }</option>
<option>-keep public class com.ethlo.time.DateTimeParsers { *; }</option>
<option>-keep public class com.ethlo.time.DateTimeParser { *; }</option>
<option>-keep public class com.ethlo.time.DateTimeTokens { *; }</option>
<option>-keep public class com.ethlo.time.token.DateTimeToken { *; }</option>
</options>
<libs>
<lib>${java.home}/jmods/java.base.jmod</lib>
</libs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>readme</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.ethlo.documentation</groupId>
<artifactId>source-extractor-maven-plugin</artifactId>
Expand All @@ -350,19 +342,42 @@ limitations under the License.
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<filtering>true</filtering>
<directory>${project.basedir}/src/site</directory>
<includes>
<include>README.md</include>
</includes>
<targetPath>/</targetPath>
</resource>
</resources>
</build>
</profile>
<profile>
<id>java-module</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.moditect</groupId>
<artifactId>moditect-maven-plugin</artifactId>
<version>1.2.2.Final</version>
<executions>
<execution>
<id>add-module-info</id>
<phase>package</phase>
<goals>
<goal>add-module-info</goal>
</goals>
<configuration>
<jvmVersion>9</jvmVersion>
<module>
<moduleInfo>
<name>com.ethlo.time.itu</name>
<exports>
!com.ethlo.time.internal*;
*;
</exports>
</moduleInfo>
</module>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
Expand Down

0 comments on commit da383dd

Please sign in to comment.