Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
30f79f2f
Commit
30f79f2f
authored
Feb 27, 2018
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use application name as convention for distribution's base name
Closes gh-12232
parent
60ac2e5c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
1 deletion
+36
-1
ApplicationPluginAction.java
...framework/boot/gradle/plugin/ApplicationPluginAction.java
+6
-1
ApplicationPluginActionIntegrationTests.java
...radle/plugin/ApplicationPluginActionIntegrationTests.java
+15
-0
ApplicationPluginActionIntegrationTests-applicationNameCanBeUsedToCustomizeDistributionName.gradle
...pplicationNameCanBeUsedToCustomizeDistributionName.gradle
+15
-0
No files found.
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ApplicationPluginAction.java
View file @
30f79f2f
...
@@ -29,6 +29,7 @@ import org.gradle.api.distribution.Distribution;
...
@@ -29,6 +29,7 @@ import org.gradle.api.distribution.Distribution;
import
org.gradle.api.distribution.DistributionContainer
;
import
org.gradle.api.distribution.DistributionContainer
;
import
org.gradle.api.file.CopySpec
;
import
org.gradle.api.file.CopySpec
;
import
org.gradle.api.file.FileCollection
;
import
org.gradle.api.file.FileCollection
;
import
org.gradle.api.internal.IConventionAware
;
import
org.gradle.api.plugins.ApplicationPlugin
;
import
org.gradle.api.plugins.ApplicationPlugin
;
import
org.gradle.api.plugins.ApplicationPluginConvention
;
import
org.gradle.api.plugins.ApplicationPluginConvention
;
import
org.gradle.jvm.application.scripts.TemplateBasedScriptGenerator
;
import
org.gradle.jvm.application.scripts.TemplateBasedScriptGenerator
;
...
@@ -49,6 +50,10 @@ final class ApplicationPluginAction implements PluginApplicationAction {
...
@@ -49,6 +50,10 @@ final class ApplicationPluginAction implements PluginApplicationAction {
DistributionContainer
distributions
=
project
.
getExtensions
()
DistributionContainer
distributions
=
project
.
getExtensions
()
.
getByType
(
DistributionContainer
.
class
);
.
getByType
(
DistributionContainer
.
class
);
Distribution
distribution
=
distributions
.
create
(
"boot"
);
Distribution
distribution
=
distributions
.
create
(
"boot"
);
if
(
distribution
instanceof
IConventionAware
)
{
((
IConventionAware
)
distribution
).
getConventionMapping
().
map
(
"baseName"
,
()
->
applicationConvention
.
getApplicationName
()
+
"-boot"
);
}
CreateBootStartScripts
bootStartScripts
=
project
.
getTasks
()
CreateBootStartScripts
bootStartScripts
=
project
.
getTasks
()
.
create
(
"bootStartScripts"
,
CreateBootStartScripts
.
class
);
.
create
(
"bootStartScripts"
,
CreateBootStartScripts
.
class
);
bootStartScripts
.
setDescription
(
"Generates OS-specific start scripts to run the"
bootStartScripts
.
setDescription
(
"Generates OS-specific start scripts to run the"
...
@@ -71,7 +76,7 @@ final class ApplicationPluginAction implements PluginApplicationAction {
...
@@ -71,7 +76,7 @@ final class ApplicationPluginAction implements PluginApplicationAction {
bootStartScripts
.
getConventionMapping
().
map
(
"outputDir"
,
bootStartScripts
.
getConventionMapping
().
map
(
"outputDir"
,
()
->
new
File
(
project
.
getBuildDir
(),
"bootScripts"
));
()
->
new
File
(
project
.
getBuildDir
(),
"bootScripts"
));
bootStartScripts
.
getConventionMapping
().
map
(
"applicationName"
,
bootStartScripts
.
getConventionMapping
().
map
(
"applicationName"
,
()
->
applicationConvention
.
getApplicationName
()
);
applicationConvention:
:
getApplicationName
);
CopySpec
binCopySpec
=
project
.
copySpec
().
into
(
"bin"
).
from
(
bootStartScripts
);
CopySpec
binCopySpec
=
project
.
copySpec
().
into
(
"bin"
).
from
(
bootStartScripts
);
binCopySpec
.
setFileMode
(
0x755
);
binCopySpec
.
setFileMode
(
0x755
);
distribution
.
getContents
().
with
(
binCopySpec
);
distribution
.
getContents
().
with
(
binCopySpec
);
...
...
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/ApplicationPluginActionIntegrationTests.java
View file @
30f79f2f
...
@@ -133,6 +133,21 @@ public class ApplicationPluginActionIntegrationTests {
...
@@ -133,6 +133,21 @@ public class ApplicationPluginActionIntegrationTests {
name
+
"-boot/bin/"
+
name
+
".bat"
);
name
+
"-boot/bin/"
+
name
+
".bat"
);
}
}
@Test
public
void
applicationNameCanBeUsedToCustomizeDistributionName
()
throws
IOException
{
assertThat
(
this
.
gradleBuild
.
build
(
"bootDistTar"
).
task
(
":bootDistTar"
).
getOutcome
())
.
isEqualTo
(
TaskOutcome
.
SUCCESS
);
File
distribution
=
new
File
(
this
.
gradleBuild
.
getProjectDir
(),
"build/distributions/custom-boot.tar"
);
assertThat
(
distribution
).
isFile
();
String
name
=
this
.
gradleBuild
.
getProjectDir
().
getName
();
assertThat
(
tarEntryNames
(
distribution
)).
containsExactlyInAnyOrder
(
"custom-boot/"
,
"custom-boot/lib/"
,
"custom-boot/lib/"
+
name
+
".jar"
,
"custom-boot/bin/"
,
"custom-boot/bin/custom"
,
"custom-boot/bin/custom.bat"
);
}
private
List
<
String
>
zipEntryNames
(
File
distribution
)
throws
IOException
{
private
List
<
String
>
zipEntryNames
(
File
distribution
)
throws
IOException
{
List
<
String
>
entryNames
=
new
ArrayList
<>();
List
<
String
>
entryNames
=
new
ArrayList
<>();
try
(
ZipFile
zipFile
=
new
ZipFile
(
distribution
))
{
try
(
ZipFile
zipFile
=
new
ZipFile
(
distribution
))
{
...
...
spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/ApplicationPluginActionIntegrationTests-applicationNameCanBeUsedToCustomizeDistributionName.gradle
0 → 100644
View file @
30f79f2f
buildscript
{
dependencies
{
classpath
files
(
pluginClasspath
.
split
(
','
))
}
}
apply
plugin:
'org.springframework.boot'
apply
plugin:
'application'
apply
plugin:
'java'
applicationName
=
'custom'
bootJar
{
mainClassName
=
'com.example.ExampleApplication'
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment