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
c808de00
Commit
c808de00
authored
Jun 15, 2016
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow custom repackage task to be used without a global main class
Closes gh-5956
parent
76cd45e7
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
5 deletions
+30
-5
RepackagingTests.java
...ava/org/springframework/boot/gradle/RepackagingTests.java
+11
-0
repackage.gradle
...ing-boot-gradle-tests/src/test/resources/repackage.gradle
+8
-1
RepackageTask.java
.../springframework/boot/gradle/repackage/RepackageTask.java
+11
-4
No files found.
spring-boot-integration-tests/spring-boot-gradle-tests/src/test/java/org/springframework/boot/gradle/RepackagingTests.java
View file @
c808de00
...
@@ -159,6 +159,17 @@ public class RepackagingTests {
...
@@ -159,6 +159,17 @@ public class RepackagingTests {
assertFalse
(
isDevToolsJarIncluded
(
repackageFile
));
assertFalse
(
isDevToolsJarIncluded
(
repackageFile
));
}
}
@Test
public
void
customRepackagingTaskWithOwnMainClassNameAnNoGlobalMainClassName
()
{
project
.
newBuild
().
forTasks
(
"clean"
,
"customRepackagedJarWithOwnMainClass"
)
.
withArguments
(
"-PbootVersion="
+
BOOT_VERSION
,
"-Prepackage=true"
,
"-PexcludeDevtools=false"
,
"-PnoMainClass=true"
)
.
run
();
File
buildLibs
=
new
File
(
"target/repackage/build/libs"
);
assertTrue
(
new
File
(
buildLibs
,
"custom.jar"
).
exists
());
assertTrue
(
new
File
(
buildLibs
,
"custom.jar.original"
).
exists
());
}
private
boolean
isDevToolsJarIncluded
(
File
repackageFile
)
throws
IOException
{
private
boolean
isDevToolsJarIncluded
(
File
repackageFile
)
throws
IOException
{
JarFile
jarFile
=
new
JarFile
(
repackageFile
);
JarFile
jarFile
=
new
JarFile
(
repackageFile
);
try
{
try
{
...
...
spring-boot-integration-tests/spring-boot-gradle-tests/src/test/resources/repackage.gradle
View file @
c808de00
...
@@ -23,7 +23,9 @@ dependencies {
...
@@ -23,7 +23,9 @@ dependencies {
}
}
springBoot
{
springBoot
{
if
(!
project
.
hasProperty
(
"noMainClass"
))
{
mainClass
=
'foo.bar.Baz'
mainClass
=
'foo.bar.Baz'
}
excludeDevtools
=
Boolean
.
valueOf
(
project
.
excludeDevtools
)
excludeDevtools
=
Boolean
.
valueOf
(
project
.
excludeDevtools
)
}
}
...
@@ -50,3 +52,8 @@ task customRepackagedJar(type: BootRepackage, dependsOn: customJar) {
...
@@ -50,3 +52,8 @@ task customRepackagedJar(type: BootRepackage, dependsOn: customJar) {
task
customRepackagedJarWithStringReference
(
type:
BootRepackage
,
dependsOn:
customJar
)
{
task
customRepackagedJarWithStringReference
(
type:
BootRepackage
,
dependsOn:
customJar
)
{
withJarTask
=
'customJar'
withJarTask
=
'customJar'
}
}
task
customRepackagedJarWithOwnMainClass
(
type:
BootRepackage
,
dependsOn:
customJar
)
{
withJarTask
=
customJar
mainClass
=
'foo.bar.Baz'
}
spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/repackage/RepackageTask.java
View file @
c808de00
...
@@ -240,15 +240,17 @@ public class RepackageTask extends DefaultTask {
...
@@ -240,15 +240,17 @@ public class RepackageTask extends DefaultTask {
}
}
private
void
setMainClass
(
Repackager
repackager
)
{
private
void
setMainClass
(
Repackager
repackager
)
{
String
mainClass
;
String
mainClass
=
null
;
if
(
getProject
().
hasProperty
(
"mainClassName"
))
{
if
(
getProject
().
hasProperty
(
"mainClassName"
))
{
mainClass
=
(
String
)
getProject
().
property
(
"mainClassName"
);
mainClass
=
(
String
)
getProject
().
property
(
"mainClassName"
);
}
}
else
{
else
{
ExtraPropertiesExtension
extraProperties
=
(
ExtraPropertiesExtension
)
getProject
()
ExtraPropertiesExtension
extraProperties
=
(
ExtraPropertiesExtension
)
getProject
()
.
getExtensions
().
getByName
(
"ext"
);
.
getExtensions
().
getByName
(
"ext"
);
if
(
extraProperties
.
has
(
"mainClassName"
))
{
mainClass
=
(
String
)
extraProperties
.
get
(
"mainClassName"
);
mainClass
=
(
String
)
extraProperties
.
get
(
"mainClassName"
);
}
}
}
if
(
RepackageTask
.
this
.
mainClass
!=
null
)
{
if
(
RepackageTask
.
this
.
mainClass
!=
null
)
{
mainClass
=
RepackageTask
.
this
.
mainClass
;
mainClass
=
RepackageTask
.
this
.
mainClass
;
}
}
...
@@ -262,9 +264,14 @@ public class RepackageTask extends DefaultTask {
...
@@ -262,9 +264,14 @@ public class RepackageTask extends DefaultTask {
.
property
(
"main"
);
.
property
(
"main"
);
}
}
}
}
if
(
mainClass
!=
null
)
{
getLogger
().
info
(
"Setting mainClass: "
+
mainClass
);
getLogger
().
info
(
"Setting mainClass: "
+
mainClass
);
repackager
.
setMainClass
(
mainClass
);
repackager
.
setMainClass
(
mainClass
);
}
}
else
{
getLogger
().
info
(
"No mainClass configured"
);
}
}
private
LaunchScript
getLaunchScript
()
throws
IOException
{
private
LaunchScript
getLaunchScript
()
throws
IOException
{
if
(
isExecutable
()
||
getEmbeddedLaunchScript
()
!=
null
)
{
if
(
isExecutable
()
||
getEmbeddedLaunchScript
()
!=
null
)
{
...
...
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