diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java
index bf64a2af..cac0eec3 100644
--- a/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java
+++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/FrontendGradlePlugin.java
@@ -296,17 +296,17 @@ protected void configureTasks(final Project project,
task -> configureInstallFrontendTask(task, taskContainer, beanRegistryBuildServiceProvider,
frontendExtension, systemProviders));
taskContainer.register(CLEAN_TASK_NAME, CleanTask.class,
- task -> configureCleanTask(task, taskContainer, beanRegistryBuildServiceProvider, frontendExtension,
+ task -> configureCleanFrontendTask(task, taskContainer, beanRegistryBuildServiceProvider, frontendExtension,
systemProviders));
taskContainer.register(CHECK_TASK_NAME, CheckTask.class,
- task -> configureCheckTask(task, taskContainer, beanRegistryBuildServiceProvider, frontendExtension,
+ task -> configureCheckFrontendTask(task, taskContainer, beanRegistryBuildServiceProvider, frontendExtension,
systemProviders));
taskContainer.register(ASSEMBLE_TASK_NAME, AssembleTask.class,
- task -> configureAssembleTask(task, taskContainer, beanRegistryBuildServiceProvider, frontendExtension,
- systemProviders));
+ task -> configureAssembleFrontendTask(task, taskContainer, beanRegistryBuildServiceProvider,
+ frontendExtension, systemProviders));
taskContainer.register(PUBLISH_TASK_NAME, PublishTask.class,
- task -> configurePublishTask(task, taskContainer, beanRegistryBuildServiceProvider, frontendExtension,
- systemProviders));
+ task -> configurePublishFrontendTask(task, taskContainer, beanRegistryBuildServiceProvider,
+ frontendExtension, systemProviders));
// Configure dependencies with Gradle built-in tasks.
configureDependency(taskContainer, GRADLE_CLEAN_TASK_NAME, CLEAN_TASK_NAME, CleanTask.class);
@@ -559,7 +559,7 @@ protected void configureInstallFrontendTask(final InstallFrontendTask task, fina
* @param beanRegistryBuildServiceProvider Bean registry build service provider.
* @param frontendExtension Plugin extension.
*/
- protected void configureCleanTask(final CleanTask task, final TaskContainer taskContainer,
+ protected void configureCleanFrontendTask(final CleanTask task, final TaskContainer taskContainer,
final Provider
- * NOTE: this task will be renamed {@code CheckFrontendTask} to conform with naming convention of other tasks.
*/
public class CheckTask extends AbstractRunCommandTask {
diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/CleanTask.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/CleanTask.java
index b77c27c7..087091a7 100644
--- a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/CleanTask.java
+++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/CleanTask.java
@@ -10,8 +10,6 @@
/**
* This task cleans project artifacts.
- *
- * NOTE: this task will be renamed {@code CleanFrontendTask} to conform with naming convention of other tasks.
*/
public class CleanTask extends AbstractRunCommandTask {
diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/GradleScriptRunnerAdapter.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/GradleScriptRunnerAdapter.java
index 4e3e04fa..dd22b876 100644
--- a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/GradleScriptRunnerAdapter.java
+++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/GradleScriptRunnerAdapter.java
@@ -35,7 +35,7 @@ public void execute(final ScriptProperties scriptProperties) {
.script(scriptProperties.getScript())
.environmentVariables(scriptProperties.getEnvironmentVariables())
.build());
- logger.info("Execution settings: {}", executionSettings);
+ logger.debug("Execution settings: {}", executionSettings);
scriptProperties
.getExecOperations()
diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/InstallCorepackTask.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/InstallCorepackTask.java
index 72034780..30483648 100644
--- a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/InstallCorepackTask.java
+++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/InstallCorepackTask.java
@@ -35,6 +35,12 @@ public class InstallCorepackTask extends AbstractRunCommandTask {
*/
public static final String COREPACK_MODULE_PATH = "node_modules/corepack";
+ /**
+ * Name of the environment variable that prevents Corepack to fail during update with NPM, if the project uses
+ * another package manager.
+ */
+ public static final String COREPACK_ENABLE_STRICT_VARIABLE = "COREPACK_ENABLE_STRICT";
+
/**
* Version of Corepack that should be installed: may be a specific version number such as {@code X.Y.Z} or the
* {@link #LATEST_VERSION_ARGUMENT} keyword to install the latest version available.
@@ -76,6 +82,7 @@ public void execute() throws NonRunnableTaskException, BeanRegistryException {
scriptBuilder.append(version);
}
this.script.set(scriptBuilder.toString());
+ this.environmentVariables.put(COREPACK_ENABLE_STRICT_VARIABLE, "0");
super.execute();
}
diff --git a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/PublishTask.java b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/PublishTask.java
index 80bbeb3c..817355cc 100644
--- a/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/PublishTask.java
+++ b/plugin/src/main/java/org/siouan/frontendgradleplugin/infrastructure/gradle/PublishTask.java
@@ -10,10 +10,6 @@
/**
* This task publishes project artifacts.
- *
- * NOTE: this task will be renamed {@code PublishFrontendTask} to conform with naming convention of other tasks.
- *
- * @since 1.4.0
*/
public class PublishTask extends AbstractRunCommandTask {
diff --git a/plugin/src/test/java/org/siouan/frontendgradleplugin/FrontendGradlePluginTest.java b/plugin/src/test/java/org/siouan/frontendgradleplugin/FrontendGradlePluginTest.java
index 701131b4..b57a4b13 100644
--- a/plugin/src/test/java/org/siouan/frontendgradleplugin/FrontendGradlePluginTest.java
+++ b/plugin/src/test/java/org/siouan/frontendgradleplugin/FrontendGradlePluginTest.java
@@ -307,70 +307,79 @@ private void assertThatTasksAreConfigured(final Project project, final FrontendE
assertThat(installFrontendTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
assertThat(installFrontendTask.getDependsOn()).containsExactlyInAnyOrder(installPackageManagerTask.getName());
- final CleanTask frontendCleanTask = project.getTasks().named(CLEAN_TASK_NAME, CleanTask.class).get();
- assertThat(frontendCleanTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
- assertThat(frontendCleanTask.getPackageJsonDirectory().get()).isEqualTo(
+ final CleanTask cleanFrontendTask = project
+ .getTasks()
+ .named(CLEAN_TASK_NAME, CleanTask.class)
+ .get();
+ assertThat(cleanFrontendTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
+ assertThat(cleanFrontendTask.getPackageJsonDirectory().get()).isEqualTo(
extension.getPackageJsonDirectory().getAsFile().get());
- assertThat(frontendCleanTask.getNodeInstallDirectory().get()).isEqualTo(
+ assertThat(cleanFrontendTask.getNodeInstallDirectory().get()).isEqualTo(
extension.getNodeInstallDirectory().getAsFile().get());
//frontendCleanTask.getPackageManagerExecutableFile()
- assertThat(frontendCleanTask.getCleanScript().getOrNull()).isEqualTo(extension.getCleanScript().getOrNull());
- assertThat(frontendCleanTask.getVerboseModeEnabled().get()).isEqualTo(extension.getVerboseModeEnabled().get());
- assertThat(frontendCleanTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
- assertThat(frontendCleanTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
- assertThat(frontendCleanTask.getDependsOn()).containsExactlyInAnyOrder(installFrontendTask.getName());
+ assertThat(cleanFrontendTask.getCleanScript().getOrNull()).isEqualTo(extension.getCleanScript().getOrNull());
+ assertThat(cleanFrontendTask.getVerboseModeEnabled().get()).isEqualTo(extension.getVerboseModeEnabled().get());
+ assertThat(cleanFrontendTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
+ assertThat(cleanFrontendTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
+ assertThat(cleanFrontendTask.getDependsOn()).containsExactlyInAnyOrder(installFrontendTask.getName());
assertThat(project.getTasks().named(BasePlugin.CLEAN_TASK_NAME).get().getDependsOn()).contains(
- frontendCleanTask.getName());
+ cleanFrontendTask.getName());
- final AssembleTask frontendAssembleTask = project
+ final AssembleTask assembleFrontendTask = project
.getTasks()
.named(ASSEMBLE_TASK_NAME, AssembleTask.class)
.get();
- assertThat(frontendAssembleTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
- assertThat(frontendAssembleTask.getPackageJsonDirectory().get()).isEqualTo(
+ assertThat(assembleFrontendTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
+ assertThat(assembleFrontendTask.getPackageJsonDirectory().get()).isEqualTo(
extension.getPackageJsonDirectory().getAsFile().get());
//frontendAssembleTask.getPackageManagerExecutableFile()
- assertThat(frontendAssembleTask.getAssembleScript().getOrNull()).isEqualTo(
+ assertThat(assembleFrontendTask.getAssembleScript().getOrNull()).isEqualTo(
extension.getAssembleScript().getOrNull());
- assertThat(frontendAssembleTask.getVerboseModeEnabled().get()).isEqualTo(
+ assertThat(assembleFrontendTask.getVerboseModeEnabled().get()).isEqualTo(
extension.getVerboseModeEnabled().get());
- assertThat(frontendAssembleTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
- assertThat(frontendAssembleTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
- assertThat(frontendAssembleTask.getDependsOn()).containsExactlyInAnyOrder(installFrontendTask.getName());
+ assertThat(assembleFrontendTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
+ assertThat(assembleFrontendTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
+ assertThat(assembleFrontendTask.getDependsOn()).containsExactlyInAnyOrder(installFrontendTask.getName());
assertThat(project.getTasks().named(BasePlugin.ASSEMBLE_TASK_NAME).get().getDependsOn()).contains(
- frontendAssembleTask.getName());
+ assembleFrontendTask.getName());
- final CheckTask frontendCheckTask = project.getTasks().named(CHECK_TASK_NAME, CheckTask.class).get();
- assertThat(frontendCheckTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
- assertThat(frontendCheckTask.getPackageJsonDirectory().get()).isEqualTo(
+ final CheckTask checkFrontendTask = project
+ .getTasks()
+ .named(CHECK_TASK_NAME, CheckTask.class)
+ .get();
+ assertThat(checkFrontendTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
+ assertThat(checkFrontendTask.getPackageJsonDirectory().get()).isEqualTo(
extension.getPackageJsonDirectory().getAsFile().get());
- assertThat(frontendCheckTask.getNodeInstallDirectory().get()).isEqualTo(
+ assertThat(checkFrontendTask.getNodeInstallDirectory().get()).isEqualTo(
extension.getNodeInstallDirectory().getAsFile().get());
//frontendCheckTask.getPackageManagerExecutableFile()
- assertThat(frontendCheckTask.getCheckScript().getOrNull()).isEqualTo(extension.getCheckScript().getOrNull());
- assertThat(frontendCheckTask.getVerboseModeEnabled().get()).isEqualTo(extension.getVerboseModeEnabled().get());
- assertThat(frontendCheckTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
- assertThat(frontendCheckTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
- assertThat(frontendCheckTask.getDependsOn()).containsExactlyInAnyOrder(installFrontendTask.getName());
+ assertThat(checkFrontendTask.getCheckScript().getOrNull()).isEqualTo(extension.getCheckScript().getOrNull());
+ assertThat(checkFrontendTask.getVerboseModeEnabled().get()).isEqualTo(extension.getVerboseModeEnabled().get());
+ assertThat(checkFrontendTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
+ assertThat(checkFrontendTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
+ assertThat(checkFrontendTask.getDependsOn()).containsExactlyInAnyOrder(installFrontendTask.getName());
assertThat(project.getTasks().named(LifecycleBasePlugin.CHECK_TASK_NAME).get().getDependsOn()).contains(
- frontendCheckTask.getName());
+ checkFrontendTask.getName());
- final PublishTask frontendPublishTask = project.getTasks().named(PUBLISH_TASK_NAME, PublishTask.class).get();
- assertThat(frontendPublishTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
- assertThat(frontendPublishTask.getPackageJsonDirectory().get()).isEqualTo(
+ final PublishTask publishFrontendTask = project
+ .getTasks()
+ .named(PUBLISH_TASK_NAME, PublishTask.class)
+ .get();
+ assertThat(publishFrontendTask.getBeanRegistryBuildService().get().getBeanRegistry()).isNotNull();
+ assertThat(publishFrontendTask.getPackageJsonDirectory().get()).isEqualTo(
extension.getPackageJsonDirectory().getAsFile().get());
- assertThat(frontendPublishTask.getNodeInstallDirectory().get()).isEqualTo(
+ assertThat(publishFrontendTask.getNodeInstallDirectory().get()).isEqualTo(
extension.getNodeInstallDirectory().getAsFile().get());
//frontendPublishTask.getPackageManagerExecutableFile()
- assertThat(frontendPublishTask.getPublishScript().getOrNull()).isEqualTo(
+ assertThat(publishFrontendTask.getPublishScript().getOrNull()).isEqualTo(
extension.getPublishScript().getOrNull());
- assertThat(frontendPublishTask.getVerboseModeEnabled().get()).isEqualTo(
+ assertThat(publishFrontendTask.getVerboseModeEnabled().get()).isEqualTo(
extension.getVerboseModeEnabled().get());
- assertThat(frontendPublishTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
- assertThat(frontendPublishTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
- assertThat(frontendPublishTask.getDependsOn()).containsExactlyInAnyOrder(frontendAssembleTask.getName());
+ assertThat(publishFrontendTask.getSystemJvmArch().get()).isEqualTo(expectedSystemProperties.get(JVM_ARCH));
+ assertThat(publishFrontendTask.getSystemOsName().get()).isEqualTo(expectedSystemProperties.get(OS_NAME));
+ assertThat(publishFrontendTask.getDependsOn()).containsExactlyInAnyOrder(assembleFrontendTask.getName());
assertThat(
project.getTasks().named(PublishingPlugin.PUBLISH_LIFECYCLE_TASK_NAME).get().getDependsOn()).contains(
- frontendPublishTask.getName());
+ publishFrontendTask.getName());
}
}
diff --git a/plugin/src/test/java/org/siouan/frontendgradleplugin/infrastructure/archiver/ZipArchiverTest.java b/plugin/src/test/java/org/siouan/frontendgradleplugin/infrastructure/archiver/ZipArchiverTest.java
index 010c6e20..4603f044 100644
--- a/plugin/src/test/java/org/siouan/frontendgradleplugin/infrastructure/archiver/ZipArchiverTest.java
+++ b/plugin/src/test/java/org/siouan/frontendgradleplugin/infrastructure/archiver/ZipArchiverTest.java
@@ -7,8 +7,8 @@
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
-import static org.siouan.frontendgradleplugin.test.Resources.getResourcePath;
import static org.siouan.frontendgradleplugin.domain.PlatformFixture.LOCAL_PLATFORM;
+import static org.siouan.frontendgradleplugin.test.Resources.getResourcePath;
import java.io.IOException;
import java.io.InputStream;
@@ -55,7 +55,13 @@ void should_fail_initializing_context_when_zip_archive_does_not_exist() {
.targetDirectoryPath(temporaryDirectoryPath)
.build();
- assertThatThrownBy(() -> archiver.initializeContext(settings)).isInstanceOf(IOException.class);
+ assertThatThrownBy(() -> {
+ try (@SuppressWarnings("unused") final ZipArchiverContext zipArchiverContext = archiver.initializeContext(
+ settings)) {
+ // The test is expected to fail during context initilization above. This code is necessary in case
+ // initialization succeeds unexpectedly: the context must be close with the try-with-resources block.
+ }
+ }).isInstanceOf(IOException.class);
verifyNoMoreInteractions(fileManager);
}
@@ -70,7 +76,13 @@ void should_fail_initializing_context_when_zip_archive_is_invalid() {
.targetDirectoryPath(temporaryDirectoryPath)
.build();
- assertThatThrownBy(() -> archiver.initializeContext(settings)).isInstanceOf(IOException.class);
+ assertThatThrownBy(() -> {
+ try (@SuppressWarnings("unused") final ZipArchiverContext zipArchiverContext = archiver.initializeContext(
+ settings)) {
+ // The test is expected to fail during context initilization above. This code is necessary in case
+ // initialization succeeds unexpectedly: the context must be close with the try-with-resources block.
+ }
+ }).isInstanceOf(IOException.class);
verifyNoMoreInteractions(fileManager);
}
@@ -86,18 +98,18 @@ void should_fail_reading_symbolic_link_target() throws IOException {
.build();
final IOException expectedException = new IOException();
- final ZipArchiver archiver = new ZipArchiverWithSymbolicLinkFailure(fileManager, expectedException);
+ final ZipArchiver zipArchiver = new ZipArchiverWithSymbolicLinkFailure(fileManager, expectedException);
boolean failure = false;
- try (final ZipArchiverContext context = archiver.initializeContext(settings)) {
- Optional
+ See
- The task overrides the default version of
As the task touches the
The task takes advantage of
If you are about to tweak this task to declare additional inputs and outputs, take a look at
- these
Example hereafter shows how to customize the environment for a given task:
-import org.siouan.frontendgradleplugin.infrastructure.gradle.AssembleTask @@ -88,7 +88,7 @@ tasks.named<AssembleTask>("assembleFrontend") { Example hereafter shows how to apply an environment variable to all tasks running a node -based command: -+ - import org.siouan.frontendgradleplugin.infrastructure.gradle.AbstractRunCommandTask @@ -105,8 +105,8 @@ tasks.withType<AbstractRunCommandTask> { - Tweaking the built-in tasks + + Built-in tasks customization @@ -120,7 +120,7 @@ tasks.withType<AbstractRunCommandTask> { lazy configuration strategy the plugin already implements. The examples below introduce the implementation expected with simple cases: -↑ + // Configuring a predefined task. // LEGACY SYNTAX: task 'installFrontend' is immediately created and configured, as well as task