diff --git a/pom.xml b/pom.xml
index b4a53b7e..7a1d52d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -93,6 +93,7 @@
org.jenkins-ci.main
maven-plugin
3.16
+ true
commons-io
diff --git a/src/main/java/hudson/plugins/s3/S3CopyArtifact.java b/src/main/java/hudson/plugins/s3/S3CopyArtifact.java
index 5a498846..a9e823e0 100644
--- a/src/main/java/hudson/plugins/s3/S3CopyArtifact.java
+++ b/src/main/java/hudson/plugins/s3/S3CopyArtifact.java
@@ -161,6 +161,11 @@ private void setResult(@Nonnull Run, ?> run, boolean isOk) {
else
run.setResult(Result.FAILURE);
}
+
+ private static boolean isMavenPluginInstalled() {
+ Jenkins instance = Jenkins.getInstanceOrNull();
+ return instance != null && instance.getPlugin("maven-plugin") != null;
+ }
@Override
public void perform(@Nonnull Run, ?> dst, @Nonnull FilePath targetDir, @Nonnull Launcher launcher, @Nonnull TaskListener listener) throws InterruptedException, IOException {
@@ -217,7 +222,7 @@ public void perform(@Nonnull Run, ?> dst, @Nonnull FilePath targetDir, @Nonnul
excludeFilter = env.expand(excludeFilter);
- if (src instanceof MavenModuleSetBuild) {
+ if (isMavenPluginInstalled() && src instanceof MavenModuleSetBuild) {
// Copy artifacts from the build (ArchiveArtifacts build step)
boolean ok = perform(src, dst, includeFilter, excludeFilter, targetDir, console);
@@ -335,12 +340,13 @@ public FormValidation doCheckProjectName(
final FormValidation result;
final Item item = new JobResolver(value).job;
if (item != null) {
-
- result = item instanceof MavenModuleSet
- ? FormValidation.warning(Messages.CopyArtifact_MavenProject())
- : (item instanceof MatrixProject
- ? FormValidation.warning(Messages.CopyArtifact_MatrixProject())
- : FormValidation.ok());
+ if (isMavenPluginInstalled() && item instanceof MavenModuleSet) {
+ result = FormValidation.warning(Messages.CopyArtifact_MavenProject());
+ } else {
+ result = (item instanceof MatrixProject)
+ ? FormValidation.warning(Messages.CopyArtifact_MatrixProject())
+ : FormValidation.ok();
+ }
}
else if (value.indexOf('$') >= 0) {
result = FormValidation.warning(Messages.CopyArtifact_ParameterizedName());