<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>
	<modules>
		<module>javaparser-core</module>
		<module>javaparser-core-testing</module>
		<module>javaparser-core-testing-bdd</module>
		<module>javaparser-core-generators</module>
		<module>javaparser-core-metamodel-generator</module>
		<module>javaparser-core-serialization</module>
		<module>javaparser-symbol-solver-core</module>
		<module>javaparser-symbol-solver-testing</module>
		<module>javaparser-key-testing</module>
		<!--<module>javaparser-key-generator</module>-->
	</modules>

	<groupId>org.key-project.proofjava</groupId>
	<artifactId>javaparser-parent</artifactId>
	<packaging>pom</packaging>
	<version>3.28.0-K13.5</version>

	<name>javaparser-parent</name>
	<url>https://github.com/javaparser</url>
	<inceptionYear>2007</inceptionYear>
	<description>Java Parser and Abstract Syntax Tree for Java</description>

	<licenses>
		<license>
			<name>GNU Lesser General Public License</name>
			<url>http://www.gnu.org/licenses/lgpl-3.0.html</url>
			<distribution>repo</distribution>
		</license>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
			<comments>A business-friendly OSS license</comments>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>Danny van Bruggen</name>
			<email>hexagonaal@gmail.com</email>
			<url>https://github.com/matozoid</url>
			<id>matozoid</id>
		</developer>
		<developer>
			<name>Júlio Vilmar Gesser</name>
			<email>jgesser@gmail.com</email>
			<id>jgesser@gmail.com</id>
		</developer>
		<developer>
			<name>Sebastian Kirsch</name>
			<email>sebastian.kirsch@immobilienscout24.de</email>
			<url>https://github.com/sebastiankirsch</url>
			<id>sebastiankirsch</id>
		</developer>
		<developer>
			<name>André Rouél</name>
			<url>https://github.com/before</url>
			<id>before</id>
		</developer>
		<developer>
			<name>Nicholas Smith</name>
			<email>smiddypence@gmail.com</email>
			<url>https://github.com/SmiddyPence</url>
			<id>SmiddyPence</id>
		</developer>
		<developer>
			<name>Federico Tomassetti</name>
			<email>federico@tomassetti.me</email>
			<url>https://github.com/ftomassetti</url>
			<id>ftomassetti</id>
		</developer>
		<developer>
			<name>Didier Villevalois</name>
			<email>ptitjes@free.fr</email>
			<url>https://github.com/ptitjes</url>
			<id>ptitjes</id>
		</developer>
		<developer>
			<name>Roger Howell</name>
			<url>https://github.com/MysterAitch</url>
			<id>MysterAitch</id>
		</developer>
		<developer>
			<name>Roger Howell</name>
			<url>https://github.com/MysterAitch</url>
			<id>MysterAitch</id>
		</developer>
		<developer>
			<name>Jean Pierre Lerbscher</name>
			<url>https://github.com/jlerbsc</url>
			<id>jlerbsc</id>
		</developer>
		<developer>
			<name>Maarten Coene</name>
			<url>https://github.com/maartenc</url>
			<id>maartenc</id>
		</developer>
		<developer>
			<name>Alexander Weigl</name>
			<id>wadoon</id>
			<url>https://github.com/wadoon</url>
		</developer>
	</developers>

	<contributors>
		<contributor>
			<name>Sebastian Kürten</name>
			<email>sebastian@topobyte.de</email>
			<url>https://github.com/sebkur</url>
		</contributor>
		<contributor>
			<name>Junfei Liang</name>
			<email>fly2best@gmail.com</email>
			<url>https://github.com/fly2best</url>
		</contributor>
		<contributor>
			<name>Jarkko Miettinen</name>
			<url>https://github.com/jmiettinen</url>
		</contributor>
		<contributor>
			<name>Alexey Morozov</name>
			<email>morozov@altlinux.org</email>
			<url>https://github.com/amorozov</url>
		</contributor>
		<contributor>
			<name>Donny Nadolny</name>
			<email>donny.nadolny@gmail.com</email>
			<url>https://github.com/dnadolny</url>
		</contributor>
		<contributor>
			<name>Raquel Pau</name>
			<email>raquelpau@gmail.com</email>
			<url>https://github.com/rpau</url>
		</contributor>
		<contributor>
			<name>Chao Shi</name>
			<email>stepinto@live.com</email>
			<url>https://github.com/stepinto</url>
		</contributor>
		<contributor>
			<name>Michael Schieder</name>
			<email>michael.schieder@gmail.com</email>
			<url>https://github.com/mschieder</url>
		</contributor>
		<contributor>
			<name>CRUZ Maximilien</name>
			<email>maximilien.cruz@gmail.com</email>
			<url>https://github.com/DeepSnowNeeL</url>
		</contributor>
	</contributors>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>21</java.version>
		<byte-buddy.version>1.18.3</byte-buddy.version>
		<!--
		<argLine>-javaagent:'${settings.localRepository}/net/bytebuddy/byte-buddy-agent/${byte-buddy.version}/byte-buddy-agent-${byte-buddy.version}.jar'</argLine>
		-->
		<build.timestamp>2026-01-10T00:00:00Z</build.timestamp>
		<jacoco.javaagent/>
	</properties>

	<scm>
		<connection>scm:git:git://github.com/javaparser/javaparser.git</connection>
		<developerConnection>scm:git:git@github.com:javaparser/javaparser.git</developerConnection>
		<url>https://github.com/javaparser/javaparser.git</url>
		<tag>HEAD</tag>
	</scm>

	<issueManagement>
		<system>GitHub Issue Tracker</system>
		<url>https://github.com/javaparser/javaparser/issues</url>
	</issueManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<!--    <source>${java.version}</source>
						<target>${java.version}</target> -->
					<release>${java.version}</release>
					<useIncrementalCompilation>false</useIncrementalCompilation>
				</configuration>
			</plugin>

			<!-- NEW: Plugin for publishing to Maven Central -->                
			<plugin>
			  <groupId>org.sonatype.central</groupId>
			  <artifactId>central-publishing-maven-plugin</artifactId>
			  <version>0.10.0</version>
			  <extensions>true</extensions>
			  <configuration>
				<publishingServerId>central-portal</publishingServerId>
				<excludeArtifacts>
				  <excludeArtifact>javaparser-core-testing</excludeArtifact>
				  <excludeArtifact>javaparser-core-testing-bdd</excludeArtifact>
				  <excludeArtifact>javaparser-symbol-solver-testing</excludeArtifact>
				  <excludeArtifact>javaparser-core-metamodel-generator</excludeArtifact>
                  <excludeArtifact>javaparser-core-generators</excludeArtifact>
                  <excludeArtifact>javaparser-key-testing</excludeArtifact>
				</excludeArtifacts>

                <publishingServerId>central-portal</publishingServerId>
                <autoPublish>false</autoPublish>
				<waitUntil>published</waitUntil>
				<deploymentName>${project.artifactId}-${project.version}</deploymentName>
                
			  </configuration>
			</plugin>

            

            
		</plugins>

        
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>com.helger.maven</groupId>
					<artifactId>ph-javacc-maven-plugin</artifactId>
					<version>4.1.5</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
                    <version>3.5.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
                    <version>3.14.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
                    <version>3.2.8</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
                    <version>3.1.4</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
                    <version>3.5.0</version>
				</plugin>
				<plugin>
                    <!-- Plugin for preparing and performing a release (to sonatype central publishing portal / maven central). -->
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
                    <version>3.3.1</version>
					<configuration>
						<!-- When updating versions during release, synchronise versions of sub-modules with the parent-pom. -->
						<autoVersionSubmodules>true</autoVersionSubmodules>
						<!-- During release:prepare, update the readme (via the "run-release" profile) and add it to git. -->
						<preparationGoals>-Prun-release clean verify scm:add scm:checkin</preparationGoals>
						<!-- During release:perform, enable the release-specific profiles -->
						<releaseProfiles>run-release</releaseProfiles>
						<!-- Disable pushing of changes (i.e. false, for local testing) -->
						<pushChanges>false</pushChanges>
						<!-- NEW: Disable deployment during release:perform -->
						<goals>deploy</goals>
                    </configuration>
                </plugin>

                <plugin>
				  <groupId>org.apache.maven.plugins</groupId>
				  <artifactId>maven-deploy-plugin</artifactId>
				  <version>3.1.4</version>
				  <executions>
					<execution>
					  <id>default-deploy</id>
					  <phase>deploy</phase>
					  <goals>
						<goal>deploy</goal>
					  </goals>
					  <configuration>
						<skip>true</skip>
					  </configuration>
					</execution>
				  </executions>
				  <configuration>
					<skip>true</skip>
				  </configuration>
				</plugin>

                
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
                    <version>3.4.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-scm-plugin</artifactId>
                    <version>2.2.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
                    <version>3.4.0</version>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.8.14</version>
                    <configuration>
                        <includes>
                            <include>
                                com/github/javaparser/**
                            </include>
                        </includes>
                    </configuration>
                    <executions>
                        <execution>
                            <id>jacoco-initialize</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration>
                                <propertyName>jacoco.javaagent</propertyName>
                            </configuration>
                        </execution>
                        <execution>
                            <id>jacoco-report</id>
                            <phase>test</phase>
                            <goals>
                                <goal>report-aggregate</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.12.0</version>
					<configuration>
						<source>${java.version}</source>
						<additionalOptions>
							<!-- doclint requires perfect JavaDoc, and fails the generation of javadoc on even minor problems -->
							<!-- Ideally we will have perfectly formatted javadoc, but for now just disable it. -->
							<additionalOption>-Xdoclint:none</additionalOption>
						</additionalOptions>
						<failOnError>false</failOnError>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.21.0</version>
				</plugin>
				<plugin>
					<groupId>biz.aQute.bnd</groupId>
					<artifactId>bnd-maven-plugin</artifactId>
					<version>6.4.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
                    <version>3.5.4</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
                    <version>3.6.3</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.6.1</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>templating-maven-plugin</artifactId>
					<version>3.0.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
                    <version>3.9.0</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
                    <version>2.20.1</version>
					<configuration>
						<generateBackupPoms>false</generateBackupPoms>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
                    <!-- This is the last version with Java 8 support -->
					<version>3.6.0</version>
					<configuration>
						<configLocation>dev-files/JavaParser-CheckStyle.xml</configLocation>
						<logViolationsToConsole>true</logViolationsToConsole>
						<consoleOutput>true</consoleOutput>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
                            <version>10.26.1</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>com.diffplug.spotless</groupId>
					<artifactId>spotless-maven-plugin</artifactId>
					<!-- This is the last version with Java 8 support -->
                    <version>3.2.1</version>
					<configuration>
						<java>
							<!-- google-java-format, but better: see https://github.com/palantir/palantir-java-format -->
							<palantirJavaFormat>
								<version>2.86.0</version>                     <!-- optional -->
								<style>PALANTIR</style>                       <!-- or AOSP/GOOGLE (optional) -->
								<formatJavadoc>false</formatJavadoc>          <!-- defaults to false (optional, requires at least Palantir 2.39.0) -->
							</palantirJavaFormat>
						</java>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>


	<reporting>
		<plugins>
			<!-- Surefire Report Plugin to generate HTML reports -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>3.3.1</version>
				<configuration>
					<aggregate>true</aggregate>
				</configuration>
			</plugin>
		</plugins>
	</reporting>


	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.jspecify</groupId>
				<artifactId>jspecify</artifactId>
				<version>1.0.0</version>
			</dependency>
			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>3.30.2-GA</version>
			</dependency>
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
                <version>33.5.0-jre</version>
            </dependency>
			<dependency>
				<groupId>org.checkerframework</groupId>
				<artifactId>checker-qual</artifactId>
				<version>3.53.0</version>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest</artifactId>
				<version>3.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>5.14.2</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-inline</artifactId>
				<version>4.11.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy</artifactId>
				<version>${byte-buddy.version}</version>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy-agent</artifactId>
				<version>${byte-buddy.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>


	<profiles>
		<profile>
			<!-- doclint requires perfect JavaDoc, and fails the generation of javadoc on even minor problems -->
			<!-- Ideally we will have perfectly formatted javadoc, but for now just disable it. -->
			<id>doclint-java8-disable</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<!-- FIXME: Can this be removed? It appears to be a no-op, with be no action to be done when activated (e.g. set a parameter, configure a plugin, etc.) -->
		</profile>

        <profile>
          <id>localrepo</id>
          <distributionManagement>
		    <repository>
			  <id>gitlab-maven</id>
			  <url>./local-repo</url>
		    </repository>
	      </distributionManagement>
        </profile>
        
        <profile>
          <id>gitlab</id>
          <distributionManagement>
		    <repository>
			  <id>gitlab-maven</id>
			  <url>https://git.key-project.org/api/v4/projects/35/packages/maven</url>
		    </repository>

		    <snapshotRepository>
			  <id>gitlab-maven</id>
			  <url>https://git.key-project.org/api/v4/projects/35/packages/maven</url>
		    </snapshotRepository>
	      </distributionManagement>


          <!-- <build> -->
          <!--   <plugins> -->
		  <!--     <plugin> -->
		  <!--       <groupId>org.apache.maven.plugins</groupId> -->
		  <!--       <artifactId>maven-deploy-plugin</artifactId> -->
		  <!--       <version>3.1.4</version> -->
		  <!--       <executions> -->
		  <!--   	  <execution> -->
		  <!--   	    <id>default-deploy</id> -->
		  <!--   	    <phase>deploy</phase> -->
		  <!--   	    <goals> -->
		  <!--   		  <goal>deploy</goal> -->
		  <!--   	    </goals> -->
		  <!--   	  </execution> -->
		  <!--       </executions> -->
		  <!--     </plugin> -->
          <!--   </plugins> -->
          <!-- </build>           -->
        </profile>
        
		<profile>
			<!-- This profile is intended for use when preparing and deploying a release. -->
			<id>run-release</id>
			<build>
				<plugins>
					<!-- Update the readme with the new version number, but only when compiling a new release. -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-readme</id>
								<phase>compile</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${project.basedir}</outputDirectory>
									<resources>
										<resource>
											<directory>${project.basedir}/doc</directory>
											<includes>
												<include>readme.md</include>
											</includes>
											<filtering>true</filtering>
										</resource>
									</resources>
									<encoding>${project.build.sourceEncoding}</encoding>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- Commit the updated readme file to the repo.  -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-scm-plugin</artifactId>
						<configuration>
							<includes>readme.md</includes>
							<message>[maven-release-plugin] update readme</message>
							<!-- disabled here, as it will be pushed separately -->
							<!-- (either once the release has finished being prepared, or manually) -->
							<pushChanges>false</pushChanges>
						</configuration>
					</plugin>

					<!-- Source plugin - used to include source code within the release JAR -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<executions>
							<execution>
								<id>attach-sources</id>
								<goals>
									<goal>jar-no-fork</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<!-- Javadoc plugin - used to include javadoc within the release JAR -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<!-- GPG plugin - used to sign the release JAR before pushing to OSSRH -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
                        <version>3.2.8</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
								<configuration>
									<!-- Prevent `gpg` from using pinentry programs -->
									<gpgArguments>
										<arg>--pinentry-mode</arg>
										<arg>loopback</arg>
									</gpgArguments>
									<keyname>0DB557D9253539E9D63F9F40FFD16124DA897262</keyname>
								</configuration>
							</execution>
						</executions>
					</plugin>

				</plugins>
			</build>
		</profile>
	</profiles>
</project>
