Skip to content

Commit 2eb94df

Browse files
committed
HHH-18644 - New and improved hibernate-maven-plugin
- Move the copy logic from MavenEmbedderPlugin to hibernate-maven-plugin.gradle Signed-off-by: Koen Aers <[email protected]>
1 parent fda6c7b commit 2eb94df

File tree

2 files changed

+37
-27
lines changed

2 files changed

+37
-27
lines changed

local-build-plugins/src/main/java/org/hibernate/build/maven/embedder/MavenEmbedderPlugin.java

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,6 @@ public void apply(Project project) {
4848

4949
final Provider<RegularFile> mavenPluginPom = project.getLayout().getBuildDirectory().file( "publications/publishedArtifacts/pom-default.xml" );
5050

51-
final TaskProvider<Copy> copyPomTask = project.getTasks().register( "copyPluginPom", Copy.class, (task) -> {
52-
task.setGroup( "maven embedder" );
53-
task.usesService( embedderServiceProvider );
54-
task.from( mavenPluginPom.get().getAsFile() );
55-
task.setDestinationDir( workingDirectory.get().getAsFile());
56-
task.rename( "pom-default.xml", "pom.xml" );
57-
task.dependsOn( "generatePomFileForPublishedArtifactsPublication" );
58-
} );
59-
6051
final Project hibernateCoreProject = project.getRootProject().project( "hibernate-core" );
6152
final DirectoryProperty hibernateCoreBuildDirectory = hibernateCoreProject.getLayout().getBuildDirectory();
6253
final Provider<Directory> hibernateCoreLibsFolder = hibernateCoreBuildDirectory.dir("libs");
@@ -84,21 +75,6 @@ public void apply(Project project) {
8475
task.dependsOn( ":hibernate-scan-jandex:jar" );
8576
} );
8677

87-
final TaskProvider<Copy> copySourcesTask = project.getTasks().register( "copySources", Copy.class, (task) -> {
88-
task.setGroup( "maven embedder" );
89-
task.usesService( embedderServiceProvider );
90-
task.from( new File(project.getProjectDir(), "src").toPath() );
91-
task.setDestinationDir( new File(workingDirectory.get().getAsFile(), "src"));
92-
task.dependsOn( copyPomTask );
93-
} );
94-
95-
final TaskProvider<Copy> copyClassesTask = project.getTasks().register( "copyClasses", Copy.class, (task) -> {
96-
task.setGroup( "maven embedder" );
97-
task.from(new File(project.getProjectDir(), "target/classes/java/main").toPath());
98-
task.setDestinationDir( new File(workingDirectory.get().getAsFile(), "target/classes"));
99-
task.dependsOn( "compileJava" );
100-
} );
101-
10278
// Via the plugin's POM, we tell Maven to generate the descriptors into
10379
// `target/generated/sources/plugin-descriptors/META-INF/maven`.
10480
// `META-INF/maven` is the relative path we need inside the jar, so we
@@ -125,7 +101,7 @@ public void apply(Project project) {
125101

126102
// the hibernate-core jar needs to be present in the local repository
127103
// we need compilation to happen before we generate the descriptors
128-
task.dependsOn( copySourcesTask, copyClassesTask);
104+
task.dependsOn( "prepareWorkspace", "installHibernateCore", "installHibernateScanJandex");
129105
} );
130106

131107
final TaskProvider<MavenInstallArtifactTask> installHibernateMavenPluginTask = project.getTasks().register( "installHibernateMavenPlugin", MavenInstallArtifactTask.class, (task) -> {
@@ -149,8 +125,6 @@ public void apply(Project project) {
149125

150126
} );
151127

152-
// compilation can only happen when hibernate core is available in the local repo
153-
project.getTasks().named("compileJava", (compileTask -> compileTask.dependsOn( installHibernateCoreTask, installHibernateScanJandexTask )));
154128
// we need the descriptor generation to happen before we jar
155129
project.getTasks().named( "jar", (jarTask) -> jarTask.dependsOn( generatePluginDescriptorTask ) );
156130
project.getTasks().named( "check" , (checkTask) -> checkTask.dependsOn( integrationTestTask, generatePluginDescriptorTask ) );

tooling/hibernate-maven-plugin/hibernate-maven-plugin.gradle

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,39 @@ publishing {
7979
}
8080

8181
}
82+
83+
// Following tasks need to be performed:
84+
// 1. Compile the Java classes
85+
// 2. Copy the source tree to the working directory
86+
// 3. Copy the compiled Java classes to the working directory
87+
// 4. Install the 'hibernate-core' dependency in the local Maven repo
88+
// 5. Install the 'hibernate-scan-jandex' dependency in the local Maven repo
89+
// 6. Generate the pom.xml file for the Maven plugin
90+
// 7. Generate the Maven plugin descriptor
91+
// 8. Create the jar for the Maven plugin
92+
// 9. Install the Maven plugin descriptor in the local Maven repo
93+
// 10. Run the integration tests
94+
95+
// Prepare the working directory
96+
tasks.register('prepareWorkspace', Copy) {
97+
into('target/maven-embedder/workspace')
98+
// copy the plugin pom
99+
with( copySpec {
100+
from('target/publications/publishedArtifacts/pom-default.xml')
101+
rename('pom-default.xml', 'pom.xml')
102+
dependsOn('generatePomFileForPublishedArtifactsPublication')
103+
})
104+
// copy the compiled java classes
105+
into('target/classes') {
106+
with( copySpec {
107+
from('target/classes/java/main')
108+
dependsOn('compileJava')
109+
})
110+
}
111+
// copy the integration tests
112+
into('src/it') {
113+
with( copySpec {
114+
from('src/it')
115+
})
116+
}
117+
}

0 commit comments

Comments
 (0)