<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>net.risesoft</groupId>
	<artifactId>demo01</artifactId>
	<packaging>jar</packaging>
	<version>1.0</version>
	<name>demo01</name>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.2.0</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

	<repositories>
		<repository>
			<id>spring-snapshots</id>
			<url>https://repo.spring.io/snapshot</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>spring-milestones</id>
			<url>https://repo.spring.io/milestone</url>
		</repository>
	</repositories>

	<pluginRepositories>
		<pluginRepository>
			<id>spring-snapshots</id>
			<url>https://repo.spring.io/snapshot</url>
		</pluginRepository>
		<pluginRepository>
			<id>spring-milestones</id>
			<url>https://repo.spring.io/milestone</url>
		</pluginRepository>
	</pluginRepositories>

	<properties>
		<java.version>21</java.version>
		<spring-cloud.version>2023.0.0</spring-cloud.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<!--<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>-->
		</dependency>

		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<scope>runtime</scope>
		</dependency>


		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-docker-compose</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

		<dependency>
			<groupId>io.micrometer</groupId>
			<artifactId>micrometer-registry-prometheus</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-consul-discovery</artifactId>
		</dependency>

		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<!--<dependency>
			<groupId>jakarta.servlet.jsp.jstl</groupId>
			<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
		</dependency>-->

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.graalvm.buildtools</groupId>
				<artifactId>native-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
					<mainClass>net.risesoft.demo.Demo01Application</mainClass>
					<image>
						<env>
							<BP_NATIVE_IMAGE>false</BP_NATIVE_IMAGE>
							<BP_JVM_VERSION>21</BP_JVM_VERSION>
						</env>
						<name>svn.youshengyun.com:9923/${project.artifactId}-jvm:${project.version}</name>
						<publish>true</publish>
					</image>
					<docker>
						<publishRegistry>
							<username>publisher</username>
							<password>83204585</password>
						</publishRegistry>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>jib</id>
			<build>
				<plugins>
					<plugin>
						<groupId>com.google.cloud.tools</groupId>
						<artifactId>jib-maven-plugin</artifactId>
						<version>3.4.0</version>
						<configuration>
							<skip>false</skip>
							<from>
								<image>eclipse-temurin:21-jre</image>
							</from>
							<to>
								<image>svn.youshengyun.com:9923/${project.artifactId}-jib</image>
								<tags>
									<tag>${project.version}</tag>
								</tags>
								<auth>
									<username>publisher</username>
									<password>83204585</password>
								</auth>
							</to>
						</configuration>
						<executions>
							<execution>
								<phase>install</phase>
								<goals>
									<goal>build</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>native</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-jar-plugin</artifactId>
						<configuration>
							<archive>
								<manifestEntries>
									<Spring-Boot-Native-Processed>true</Spring-Boot-Native-Processed>
								</manifestEntries>
							</archive>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-maven-plugin</artifactId>
						<configuration>
							<image>
								<builder>paketobuildpacks/builder-jammy-tiny</builder>
								<buildpacks>
									<buildpack>gcr.io/paketo-buildpacks/graalvm</buildpack>
									<buildpack>gcr.io/paketo-buildpacks/java-native-image</buildpack>
								</buildpacks>
								<env>
									<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
									<BP_JVM_VERSION>21</BP_JVM_VERSION>
									<BP_NATIVE_IMAGE_BUILD_ARGUMENTS>--enable-preview</BP_NATIVE_IMAGE_BUILD_ARGUMENTS>
								</env>
								<name>svn.youshengyun.com:9923/${project.artifactId}-native:${project.version}</name>
								<publish>true</publish>
							</image>
							<docker>
								<publishRegistry>
									<username>publisher</username>
									<password>83204585</password>
								</publishRegistry>
							</docker>
						</configuration>
						<executions>
							<execution>
								<id>process-aot</id>
								<goals>
									<goal>process-aot</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.graalvm.buildtools</groupId>
						<artifactId>native-maven-plugin</artifactId>
						<configuration>
							<classesDirectory>${project.build.outputDirectory}</classesDirectory>
							<metadataRepository>
								<enabled>true</enabled>
							</metadataRepository>
							<requiredVersion>22.3</requiredVersion>
						</configuration>
						<executions>
							<execution>
								<id>add-reachability-metadata</id>
								<goals>
									<goal>add-reachability-metadata</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>