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)
|
||||
|
||||
boolean gradleBuild = 'gradle'.equals(request.build)
|
||||
if (gradleBuild) {
|
||||
if (isGradleBuild(request)) {
|
||||
def gradle = new String(doGenerateGradleBuild(model))
|
||||
new File(dir, 'build.gradle').write(gradle)
|
||||
writeGradleWrapper(dir)
|
||||
@@ -201,10 +200,6 @@ class ProjectGenerator {
|
||||
Assert.notNull request.bootVersion, 'boot version must not be null'
|
||||
def model = [:]
|
||||
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)
|
||||
|
||||
@@ -215,10 +210,17 @@ class ProjectGenerator {
|
||||
|
||||
request.properties.each { model[it.key] = it.value }
|
||||
|
||||
if (isMavenBuild(request)) {
|
||||
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}')
|
||||
}
|
||||
|
||||
model['mavenParentGroupId'] = parentPom.groupId
|
||||
model['mavenParentArtifactId'] = parentPom.artifactId
|
||||
model['mavenParentVersion'] = parentPom.version
|
||||
model['includeSpringBootBom'] = parentPom.includeSpringBootBom
|
||||
}
|
||||
|
||||
model['compileDependencies'] = filterDependencies(dependencies, Dependency.SCOPE_COMPILE)
|
||||
model['runtimeDependencies'] = filterDependencies(dependencies, Dependency.SCOPE_RUNTIME)
|
||||
@@ -275,6 +277,14 @@ class ProjectGenerator {
|
||||
"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) {
|
||||
VERSION_1_4_0_M2
|
||||
.compareTo(Version.safeParse(request.bootVersion)) <= 0
|
||||
|
@@ -62,11 +62,13 @@ abstract class AbstractProjectGeneratorTests {
|
||||
|
||||
|
||||
protected PomAssert generateMavenPom(ProjectRequest request) {
|
||||
request.type = 'maven-build'
|
||||
def content = new String(projectGenerator.generateMavenPom(request))
|
||||
new PomAssert(content).validateProjectRequest(request)
|
||||
}
|
||||
|
||||
protected GradleBuildAssert generateGradleBuild(ProjectRequest request) {
|
||||
request.type = 'gradle-build'
|
||||
def content = new String(projectGenerator.generateGradleBuild(request))
|
||||
new GradleBuildAssert(content).validateProjectRequest(request)
|
||||
}
|
||||
|
@@ -345,6 +345,20 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
||||
.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
|
||||
void gradleBuildWithBootSnapshot() {
|
||||
def request = createProjectRequest('web')
|
||||
@@ -614,7 +628,7 @@ class ProjectGeneratorTests extends AbstractProjectGeneratorTests {
|
||||
def request = createProjectRequest('web')
|
||||
request.type = 'foo-bar'
|
||||
try {
|
||||
generateMavenPom(request)
|
||||
generateProject(request)
|
||||
fail("Should have failed to generate project")
|
||||
} catch (InvalidProjectRequestException ex) {
|
||||
assertThat ex.message, containsString('foo-bar')
|
||||
|
Reference in New Issue
Block a user