mirror of
https://gitee.com/dcren/initializr.git
synced 2025-09-18 17:48:14 +08:00
Polish custom maven parent pom support
This commit is contained in:
@@ -116,8 +116,7 @@ class ProjectGenerator {
|
|||||||
|
|
||||||
def dir = initializerProjectDir(rootDir, request)
|
def dir = initializerProjectDir(rootDir, request)
|
||||||
|
|
||||||
boolean gradleBuild = 'gradle'.equals(request.build)
|
if (isGradleBuild(request)) {
|
||||||
if (gradleBuild) {
|
|
||||||
def gradle = new String(doGenerateGradleBuild(model))
|
def gradle = new String(doGenerateGradleBuild(model))
|
||||||
new File(dir, 'build.gradle').write(gradle)
|
new File(dir, 'build.gradle').write(gradle)
|
||||||
writeGradleWrapper(dir)
|
writeGradleWrapper(dir)
|
||||||
@@ -201,10 +200,6 @@ class ProjectGenerator {
|
|||||||
Assert.notNull request.bootVersion, 'boot version must not be null'
|
Assert.notNull request.bootVersion, 'boot version must not be null'
|
||||||
def model = [:]
|
def model = [:]
|
||||||
def metadata = metadataProvider.get()
|
def metadata = metadataProvider.get()
|
||||||
ParentPom parentPom = metadata.configuration.env.maven.resolveParentPom(request.bootVersion)
|
|
||||||
if (parentPom.includeSpringBootBom && !request.boms['spring-boot']) {
|
|
||||||
request.boms['spring-boot'] = metadata.createSpringBootBom('${spring-boot.version}')
|
|
||||||
}
|
|
||||||
|
|
||||||
request.resolve(metadata)
|
request.resolve(metadata)
|
||||||
|
|
||||||
@@ -215,10 +210,17 @@ class ProjectGenerator {
|
|||||||
|
|
||||||
request.properties.each { model[it.key] = it.value }
|
request.properties.each { model[it.key] = it.value }
|
||||||
|
|
||||||
model['mavenParentGroupId'] = parentPom.groupId
|
if (isMavenBuild(request)) {
|
||||||
model['mavenParentArtifactId'] = parentPom.artifactId
|
ParentPom parentPom = metadata.configuration.env.maven.resolveParentPom(request.bootVersion)
|
||||||
model['mavenParentVersion'] = parentPom.version
|
if (parentPom.includeSpringBootBom && !request.boms['spring-boot']) {
|
||||||
model['includeSpringBootBom'] = parentPom.includeSpringBootBom
|
request.boms['spring-boot'] = metadata.createSpringBootBom('${spring-boot.version}')
|
||||||
|
}
|
||||||
|
|
||||||
|
model['mavenParentGroupId'] = parentPom.groupId
|
||||||
|
model['mavenParentArtifactId'] = parentPom.artifactId
|
||||||
|
model['mavenParentVersion'] = parentPom.version
|
||||||
|
model['includeSpringBootBom'] = parentPom.includeSpringBootBom
|
||||||
|
}
|
||||||
|
|
||||||
model['compileDependencies'] = filterDependencies(dependencies, Dependency.SCOPE_COMPILE)
|
model['compileDependencies'] = filterDependencies(dependencies, Dependency.SCOPE_COMPILE)
|
||||||
model['runtimeDependencies'] = filterDependencies(dependencies, Dependency.SCOPE_RUNTIME)
|
model['runtimeDependencies'] = filterDependencies(dependencies, Dependency.SCOPE_RUNTIME)
|
||||||
@@ -275,6 +277,14 @@ class ProjectGenerator {
|
|||||||
"import $type$end"
|
"import $type$end"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static isGradleBuild(ProjectRequest request) {
|
||||||
|
return 'gradle'.equals(request.build)
|
||||||
|
}
|
||||||
|
|
||||||
|
private static isMavenBuild(ProjectRequest request) {
|
||||||
|
return 'maven'.equals(request.build)
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean isNewTestInfrastructureAvailable(ProjectRequest request) {
|
private static boolean isNewTestInfrastructureAvailable(ProjectRequest request) {
|
||||||
VERSION_1_4_0_M2
|
VERSION_1_4_0_M2
|
||||||
.compareTo(Version.safeParse(request.bootVersion)) <= 0
|
.compareTo(Version.safeParse(request.bootVersion)) <= 0
|
||||||
|
@@ -62,11 +62,13 @@ abstract class AbstractProjectGeneratorTests {
|
|||||||
|
|
||||||
|
|
||||||
protected PomAssert generateMavenPom(ProjectRequest request) {
|
protected PomAssert generateMavenPom(ProjectRequest request) {
|
||||||
|
request.type = 'maven-build'
|
||||||
def content = new String(projectGenerator.generateMavenPom(request))
|
def content = new String(projectGenerator.generateMavenPom(request))
|
||||||
new PomAssert(content).validateProjectRequest(request)
|
new PomAssert(content).validateProjectRequest(request)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GradleBuildAssert generateGradleBuild(ProjectRequest request) {
|
protected GradleBuildAssert generateGradleBuild(ProjectRequest request) {
|
||||||
|
request.type = 'gradle-build'
|
||||||
def content = new String(projectGenerator.generateGradleBuild(request))
|
def content = new String(projectGenerator.generateGradleBuild(request))
|
||||||
new GradleBuildAssert(content).validateProjectRequest(request)
|
new GradleBuildAssert(content).validateProjectRequest(request)
|
||||||
}
|
}
|
||||||
|
@@ -345,6 +345,20 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
.hasBomsCount(1)
|
.hasBomsCount(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void gradleBuildWithCustomParentPomAndSpringBootBom() {
|
||||||
|
def metadata = InitializrMetadataTestBuilder.withDefaults()
|
||||||
|
.addDependencyGroup('core', 'web', 'security', 'data-jpa')
|
||||||
|
.setMavenParent('com.foo', 'foo-parent', '1.0.0-SNAPSHOT', true)
|
||||||
|
.build()
|
||||||
|
applyMetadata(metadata)
|
||||||
|
def request = createProjectRequest('web')
|
||||||
|
request.bootVersion = '1.0.2.RELEASE'
|
||||||
|
generateGradleBuild(request)
|
||||||
|
.doesNotContain("ext['spring-boot.version'] = '1.0.2.RELEASE'")
|
||||||
|
.doesNotContain("mavenBom \"org.springframework.boot:spring-boot-dependencies:1.0.2.RELEASE\"")
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void gradleBuildWithBootSnapshot() {
|
void gradleBuildWithBootSnapshot() {
|
||||||
def request = createProjectRequest('web')
|
def request = createProjectRequest('web')
|
||||||
@@ -614,7 +628,7 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
|||||||
def request = createProjectRequest('web')
|
def request = createProjectRequest('web')
|
||||||
request.type = 'foo-bar'
|
request.type = 'foo-bar'
|
||||||
try {
|
try {
|
||||||
generateMavenPom(request)
|
generateProject(request)
|
||||||
fail("Should have failed to generate project")
|
fail("Should have failed to generate project")
|
||||||
} catch (InvalidProjectRequestException ex) {
|
} catch (InvalidProjectRequestException ex) {
|
||||||
assertThat ex.message, containsString('foo-bar')
|
assertThat ex.message, containsString('foo-bar')
|
||||||
|
Reference in New Issue
Block a user