gson
Used in
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.11.0</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2008 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.google.code.gson</groupId> <artifactId>gson-parent</artifactId> <version>2.11.0</version> </parent> <artifactId>gson</artifactId> <name>Gson</name> <licenses> <license> <name>Apache-2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> <properties> <!-- Make the build reproducible, see root `pom.xml` --> <!-- This is duplicated here because that is recommended by `artifact:check-buildplan` --> <project.build.outputTimestamp>2024-05-19T18:53:38Z</project.build.outputTimestamp> <excludeTestCompilation>**/Java17*</excludeTestCompilation> </properties> <dependencies> <!-- This dependency can be considered optional; omitting it during runtime will most likely not cause any issues. However, it is not declared with `<optional>true</optional>` because that can lead to cryptic compiler warnings for consumers, and to be on the safe side in case there are actually issues which could occur when the dependency is missing at runtime. See also discussion at https://github.com/google/gson/pull/2320#issuecomment-1455233938 --> <dependency> <groupId>com.google.errorprone</groupId> <artifactId>error_prone_annotations</artifactId> <version>2.27.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.google.truth</groupId> <artifactId>truth</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava-testlib</artifactId> <version>33.1.0-jre</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- Plugins for source generation and compilation --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>templating-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>filtering-java-templates</id> <goals> <goal>filter-sources</goal> </goals> <configuration> <sourceDirectory>${project.basedir}/src/main/java-templates</sourceDirectory> <outputDirectory>${project.build.directory}/generated-sources/java-templates</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <!-- Adjust standard `default-compile` execution --> <execution> <id>default-compile</id> <configuration> <excludes> <!-- module-info.java is compiled using ModiTect --> <exclude>module-info.java</exclude> </excludes> </configuration> </execution> <!-- Adjust standard `default-testCompile` execution --> <execution> <id>default-testCompile</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> <configuration> <testExcludes> <exclude>${excludeTestCompilation}</exclude> </testExcludes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>biz.aQute.bnd</groupId> <artifactId>bnd-maven-plugin</artifactId> <version>6.4.0</version> <executions> <execution> <goals> <goal>bnd-process</goal> </goals> </execution> </executions> </plugin> <!-- Plugins for test execution --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- Deny illegal access, this is required for ReflectionAccessTest --> <!-- Requires Java >= 9; Important: In case future Java versions don't support this flag anymore, don't remove it unless CI also runs with that Java version. Ideally would use toolchain to specify that this should run with e.g. Java 11, but Maven toolchain requirements (unlike Gradle ones) don't seem to be portable (every developer would have to set up toolchain configuration locally). --> <argLine>--illegal-access=deny</argLine> </configuration> </plugin> <plugin> <groupId>com.coderplus.maven.plugins</groupId> <artifactId>copy-rename-maven-plugin</artifactId> <version>1.0.1</version> <executions> <execution> <id>pre-obfuscate-class</id> <phase>process-test-classes</phase> <goals> <goal>rename</goal> </goals> <configuration> <fileSets> <fileSet> <sourceFile>${project.build.directory}/test-classes/com/google/gson/functional/EnumWithObfuscatedTest.class</sourceFile> <destinationFile>${project.build.directory}/test-classes-obfuscated-injar/com/google/gson/functional/EnumWithObfuscatedTest.class</destinationFile> </fileSet> <fileSet> <sourceFile>${project.build.directory}/test-classes/com/google/gson/functional/EnumWithObfuscatedTest$Gender.class</sourceFile> <destinationFile>${project.build.directory}/test-classes-obfuscated-injar/com/google/gson/functional/EnumWithObfuscatedTest$Gender.class</destinationFile> </fileSet> </fileSets> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.6.1</version> <executions> <execution> <id>obfuscate-test-class</id> <phase>process-test-classes</phase> <goals> <goal>proguard</goal> </goals> </execution> </executions> <!-- Upgrades ProGuard to version newer than the one included by plugin by default --> <dependencies> <dependency> <groupId>com.guardsquare</groupId> <artifactId>proguard-base</artifactId> <version>7.4.2</version> </dependency> <dependency> <groupId>com.guardsquare</groupId> <artifactId>proguard-core</artifactId> <version>9.1.3</version> </dependency> </dependencies> <configuration> <obfuscate>true</obfuscate> <injar>test-classes-obfuscated-injar</injar> <outjar>test-classes-obfuscated-outjar</outjar> <inFilter>**/*.class</inFilter> <proguardInclude>${project.basedir}/src/test/resources/testcases-proguard.conf</proguardInclude> <libs> <lib>${project.build.directory}/classes</lib> <lib>${java.home}/jmods/java.base.jmod</lib> </libs> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>post-obfuscate-class</id> <phase>process-test-classes</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/test-classes/com/google/gson/functional</outputDirectory> <resources> <resource> <directory>${project.build.directory}/test-classes-obfuscated-outjar/com/google/gson/functional</directory> <includes> <include>EnumWithObfuscatedTest.class</include> <include>EnumWithObfuscatedTest$Gender.class</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <!-- Plugins for building / modifying artifacts --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- Use existing manifest generated by BND plugin --> <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> </plugin> <!-- Add module-info to JAR, see https://github.com/moditect/moditect#adding-module-descriptors-to-existing-jar-files --> <!-- Uses ModiTect instead of separate maven-compiler-plugin executions for better Eclipse IDE support, see https://github.com/eclipse-m2e/m2e-core/issues/393 --> <!-- Note: For some reason this has to be executed before javadoc plugin; otherwise `javadoc:jar` goal fails to find source files --> <plugin> <groupId>org.moditect</groupId> <artifactId>moditect-maven-plugin</artifactId> <version>1.2.1.Final</version> <executions> <execution> <id>add-module-info</id> <phase>package</phase> <goals> <goal>add-module-info</goal> </goals> <configuration> <jvmVersion>9</jvmVersion> <module> <moduleInfoFile>${project.build.sourceDirectory}/module-info.java</moduleInfoFile> </module> <!-- Overwrite the previously generated JAR file, if any --> <overwriteExistingFiles>true</overwriteExistingFiles> </configuration> </execution> </executions> </plugin> <!-- Note: Javadoc plugin has to be run in combination with >= `package` phase, e.g. `mvn package javadoc:javadoc`, otherwise it fails with "Aggregator report contains named and unnamed modules" --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <configuration> <excludePackageNames>com.google.gson.internal:com.google.gson.internal.bind</excludePackageNames> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>JDK17</id> <activation> <jdk>[17,)</jdk> </activation> <properties> <maven.compiler.testRelease>17</maven.compiler.testRelease> <excludeTestCompilation /> </properties> </profile> </profiles> </project>