Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/e2e-plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ on:
- nx-gradle quarkus kotlin dsl e2e
- nx-gradle spring-boot e2e
- nx-gradle spring-boot kotlin dsl e2e
- nx-gradle spring-boot-4 e2e
- nx-gradle spring-boot-4 kotlin dsl e2e
- graph should works with optional project.json
- should use specified options to create an sb application
- should create a sb java application
Expand All @@ -30,6 +32,7 @@ on:
- nx-maven quarkus bom e2e
- nx-maven spring-boot bom e2e
- nx-maven spring-boot-parent-pom e2e
- nx-maven spring-boot-4 parent-pom e2e
- should use specified options and hyphen in groupId to create an application
- should --aggregator-project option works and generate java nested sub-projects
- should generate java apps that use a parent project
Expand Down
16 changes: 14 additions & 2 deletions packages/common/src/lib/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,24 @@ export type CustomCli =
| 'create-nx-maven-workspace'
| 'create-nx-gradle-workspace';
export type TargetsType = Record<string, TargetConfiguration>;
export type FrameworkType = 'spring-boot' | 'quarkus' | 'micronaut' | 'none';
export type PresetType = 'spring-boot' | 'quarkus' | 'micronaut' | 'none';
export type FrameworkType =
| 'spring-boot'
| 'spring-boot-4'
| 'quarkus'
| 'micronaut'
| 'none';
export type PresetType =
| 'spring-boot'
| 'spring-boot-4'
| 'quarkus'
| 'micronaut'
| 'none';
export type DependencyManagementType =
| 'none'
| 'spring-boot-parent-pom'
| 'spring-boot-bom'
| 'spring-boot-4-parent-pom'
| 'spring-boot-4-bom'
| 'quarkus-bom'
| 'micronaut-parent-pom'
| 'micronaut-bom';
Expand Down
6 changes: 5 additions & 1 deletion packages/common/src/lib/versions/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
//Kotlin
export const kotlinVersion = '1.9.21';

//Spring boot
//Spring boot 3
export const springBootVersion = '3.2.0';
export const springDependencyManagementVersion = '1.1.4';

//Spring boot 4
export const springBoot4Version = '4.0.0';
export const springDependencyManagement4Version = '1.1.7';

//Quarkus
export const quarkusVersion = '3.5.3';

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
<% if(versionManagement === 'properties') { -%>
<% if(dsl === 'groovy') { -%>
plugins {
id 'java'
<% if(packaging === 'war') { -%>
id 'war'
<% } -%>
id 'org.springframework.boot'
id 'io.spring.dependency-management'
}

group = '<%= groupId %>'
version = '<%= projectVersion %>'

java {
sourceCompatibility = "${javaVersion}"
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
<% if(packaging === 'war') { -%>
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
<% } -%>
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
useJUnitPlatform()
}
<% } -%>
<% if(dsl === 'kotlin') { -%>
val javaVersion: String by project

plugins {
java
<% if(packaging === 'war') { -%>
war
<% } -%>
id("org.springframework.boot")
id("io.spring.dependency-management")
}

group = "<%= groupId %>"
version = "<%= projectVersion %>"

java {
sourceCompatibility = JavaVersion.toVersion(javaVersion)
}

repositories {
mavenCentral()
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
<% if(packaging === 'war') { -%>
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
<% } -%>
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> {
useJUnitPlatform()
}
<% } -%>
<% } -%>
<% if(versionManagement === 'version-catalog') { -%>
<% if(dsl === 'groovy') { -%>
plugins {
id 'java'
<% if(packaging === 'war') { -%>
id 'war'
<% } -%>
alias libs.plugins.springframework.boot
alias libs.plugins.spring.dependency.management
}

group = '<%= groupId %>'
version = '<%= projectVersion %>'

java {
sourceCompatibility = libs.versions.java.get()
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
<% if(packaging === 'war') { -%>
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
<% } -%>
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
useJUnitPlatform()
}
<% } -%>
<% if(dsl === 'kotlin') { -%>
plugins {
java
<% if(packaging === 'war') { -%>
war
<% } -%>
alias(libs.plugins.springframework.boot)
alias(libs.plugins.spring.dependency.management)
}

group = "<%= groupId %>"
version = "<%= projectVersion %>"

java {
sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get())
}

repositories {
mavenCentral()
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
<% if(packaging === 'war') { -%>
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
<% } -%>
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> {
useJUnitPlatform()
}
<% } -%>
<% } -%>

Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
<% if(versionManagement === 'properties') { -%>
<% if(dsl === 'groovy') { -%>
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
<% if(packaging === 'war') { -%>
id 'war'
<% } -%>
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'org.jetbrains.kotlin.jvm'
id 'org.jetbrains.kotlin.plugin.spring'
}

group = '<%= groupId %>'
version = '<%= projectVersion %>'

java {
sourceCompatibility = "${javaVersion}"
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
<% if(packaging === 'war') { -%>
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
<% } -%>
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.withType(KotlinCompile) {
kotlinOptions {
freeCompilerArgs += '-Xjsr305=strict'
jvmTarget = "${javaVersion}"
}
}

tasks.named('test') {
useJUnitPlatform()
}
<% } -%>
<% if(dsl === 'kotlin') { -%>
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

val javaVersion: String by project

plugins {
<% if(packaging === 'war') { -%>
war
<% } -%>
id("org.springframework.boot")
id("io.spring.dependency-management")
kotlin("jvm")
kotlin("plugin.spring")
}

group = "<%= groupId %>"
version = "<%= projectVersion %>"

java {
sourceCompatibility = JavaVersion.toVersion(javaVersion)
}

repositories {
mavenCentral()
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
<% if(packaging === 'war') { -%>
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
<% } -%>
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs += "-Xjsr305=strict"
jvmTarget = javaVersion
}
}

tasks.withType<Test> {
useJUnitPlatform()
}
<% } -%>
<% } -%>
<% if(versionManagement === 'version-catalog') { -%>
<% if(dsl === 'groovy') { -%>
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
<% if(packaging === 'war') { -%>
id 'war'
<% } -%>
alias libs.plugins.springframework.boot
alias libs.plugins.spring.dependency.management
alias libs.plugins.jetbrains.kotlin.jvm
alias libs.plugins.jetbrains.kotlin.plugin.spring
}

group = '<%= groupId %>'
version = '<%= projectVersion %>'

java {
sourceCompatibility = libs.versions.java.get()
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.fasterxml.jackson.module:jackson-module-kotlin'
implementation 'org.jetbrains.kotlin:kotlin-reflect'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
<% if(packaging === 'war') { -%>
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
<% } -%>
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.withType(KotlinCompile) {
kotlinOptions {
freeCompilerArgs += '-Xjsr305=strict'
jvmTarget = libs.versions.java.get()
}
}

tasks.named('test') {
useJUnitPlatform()
}
<% } -%>
<% if(dsl === 'kotlin') { -%>
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
<% if(packaging === 'war') { -%>
war
<% } -%>
alias(libs.plugins.springframework.boot)
alias(libs.plugins.spring.dependency.management)
alias(libs.plugins.jetbrains.kotlin.jvm)
alias(libs.plugins.jetbrains.kotlin.plugin.spring)
}

group = "<%= groupId %>"
version = "<%= projectVersion %>"

java {
sourceCompatibility = JavaVersion.toVersion(libs.versions.java.get())
}

repositories {
mavenCentral()
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
<% if(packaging === 'war') { -%>
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
<% } -%>
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs += "-Xjsr305=strict"
jvmTarget = libs.versions.java.get()
}
}

tasks.withType<Test> {
useJUnitPlatform()
}
<% } -%>
<% } -%>
Loading
Loading