第1章 Red Hat Business Optimizer Spring Boot プロジェクトの生成
Spring Initialzr は Web ベースのアプリケーションで、少数のユーザー入力をもとに、Spring Boot 構造を作成します。Spring Initializr を使用して簡単に Maven または Gradle Spring Boot プロジェクトを生成し、Red Hat Business Optimizer 向けにカスタマイズできます。
手順
Web ブラウザーで Spring Initializr を開きます。
https://start.spring.io/
- プロジェクト、言語、Spring Boot バージョンを選択し、プロジェクトのメタデータを入力します。
-
Add Dependencies をクリックし、Spring Web を選択して
spring-boot-starter-webの依存関係を追加します。 - GENERATE をクリックします。プロジェクトの ZIP ファイルがダウンロードされます。
- ZIP ファイルを展開して、Spring Boot プロジェクトディレクトリーに移動します。
Red Hat Business Optimizer の依存関係 (
optaplanner-spring-boot-starter) を追加します。現在、optaplanner-spring-boot-starterは Spring Initializr に含まれていないため、ビルドファイルに手動で追加する必要があります。Maven プロジェクトを生成した場合は
optaplanner-spring-boot-starter依存関係をプロジェクトのpom.xmlに追加します。<dependencyManagement> <dependencies> <dependency> <groupId>org.optaplanner</groupId> <artifactId>optaplanner-spring-boot-starter</artifactId> <version>{project-version}</version> </dependency> </dependencies> </dependencyManagement>以下の例では、
optaplanner-spring-boot-starter依存関係をプロジェクトのpom.xmlファイルに追加します。<?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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>{version-org-spring-framework-boot}</version> </parent> <groupId>com.example</groupId> <artifactId>constraint-solving-ai-optaplanner</artifactId> <version>0.1.0-SNAPSHOT</version> <name>Constraint Solving AI with Red Hat Business Optimizer</name> <description>A Spring Boot Red Hat Business Optimizer example to generate a school timetable.</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.optaplanner</groupId> <artifactId>optaplanner-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.optaplanner</groupId> <artifactId>optaplanner-spring-boot-starter</artifactId> <version>{project-version}</version> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>Gradle プロジェクトを生成した場合は
optaplanner-spring-boot-starterをbuild.gradleファイルに追加します。implementation "org.optaplanner:optaplanner-spring-boot-starter:{project-version}"以下の例では
optaplanner-spring-boot-starter依存関係を、Gradle Java プロジェクトのbuild.gradleファイルに追加します。plugins { id "org.springframework.boot" version "{version-org-spring-framework-boot}" id "io.spring.dependency-management" version "1.0.9.RELEASE" id "java" } group = "com.example" version = "0.1.0-SNAPSHOT" sourceCompatibility = "1.8" repositories { mavenCentral() } dependencies { implementation "org.springframework.boot:spring-boot-starter-web" implementation "org.optaplanner:optaplanner-spring-boot-starter:{project-version}" testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude group: "org.junit.vintage", module: "junit-vintage-engine" } } test { useJUnitPlatform() }