Giter Club home page Giter Club logo

wagon-maven-plugin's Introduction

MojoHaus Wagon Maven Plugin

This is the wagon-maven-plugin.

Maven Central Apache License 2 GitHub CI

Maintained versions

Wagen Maven Plugin requires Maven 3.6.3+ and JDK 8+

However, we maintain the latest Plugin version with the latest Maven.

We execute tests against different operating systems and JDKs by GitHub Actions

Contributing

Creating Issues

If you find a problem please first search current opened and closed issues and pull requests. It can be that someone already has reported similar.

You can also check current milestone in order to see what will be in next release.

Only when you can not find similar issue please create a new one in the ticket system and describe what is going wrong or what you expect to happen.

If you have a full working example or a log file this is also helpful.

You should of course describe only a single issue in a single ticket and not mixing up several things into a single issue.

Please always check your issue with the latest Plugin and tha latest Maven version.

Creating a Pull Request

Before you start working on more complicated change, new feature it is good practice to create an issue in the ticket system or send an emil to development list and describe what the problem is or what kind of feature you would like to add. Wait a few days for feedback from other contributors. Afterwards you can create an appropriate pull request.

It is required if you want to get a pull request to be integrated into please squash your commits into a single commit which references the optional issue in the commit message which looks like this:

Fixed #Issue - change subject 

a description

Please take consider that change subject will be used in release notes and will be present in git history so should be enough descriptive.

This makes it simpler to merge it and this will also close the appropriate issue automatically in one go. This make the life as maintainer a little bit easier.

A pull request has to fulfill only a single ticket and should never create/add/fix several issues in one, cause otherwise the history is hard to read and to understand and makes the maintenance of the issues and pull request hard or to be honest impossible.

Releasing

  • Make sure gpg-agent is running.
  • Execute ./mvnw -B release:prepare release:perform

For publishing the site do the following:

cd target/checkout
../mvnw site
../mvnw scm-publish:publish-scm

wagon-maven-plugin's People

Contributors

bentmann avatar bimargulies avatar bmarwell avatar briantopping avatar dantran avatar dennisl avatar dependabot[bot] avatar glebfrank avatar hboutemy avatar olamy avatar rfscholte avatar slachiewicz avatar slawekjaranowski avatar tchemit avatar trygvis avatar volkodava avatar vpinna80 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wagon-maven-plugin's Issues

Maven dependencies should have 'provided' scope

The following dependencies are in wrong scope:

  • org.apache.maven:maven-plugin-api:jar:3.2.5:compile
  • org.apache.maven:maven-model:jar:3.2.5:compile
  • org.apache.maven:maven-artifact:jar:3.2.5:compile
  • org.apache.maven:maven-core:jar:3.2.5:compile
  • org.apache.maven:maven-settings-builder:jar:3.2.5:compile
  • org.apache.maven:maven-model-builder:jar:3.2.5:compile
  • org.apache.maven:maven-aether-provider:jar:3.2.5:compile
  • org.apache.maven:maven-settings:jar:3.2.5:compile
  • org.apache.maven:maven-compat:jar:3.2.5:compile
  • org.apache.maven:maven-repository-metadata:jar:3.2.5:compile

merge-maven-repos goal is parsing tar file contents thinking it's a HTML page

It starts like this:

[DEBUG] scandir: dir: com/acme/ui/29.4.0-SNAPSHOT/ vpath: com/acme/ui/29.4.0-SNAPSHOT/
https://jenkins.acme-internal.com:3000/plugin/repository/project/acme-Installer-DSL/Build/1904/repository/com/acme/ui/29.4.0-SNAPSHOT/ - Status code: 200
[DEBUG] scandir: dir: com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.rpm vpath: com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.rpm/
https://jenkins.acme-internal.com:3000/plugin/repository/project/acme-Installer-DSL/Build/1904/repository/com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.rpm/ - Status code: 200
[DEBUG] scandir: dir: com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar vpath: com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/
https://jenkins.acme-internal.com:3000/plugin/repository/project/acme-Installer-DSL/Build/1904/repository/com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/ - Status code: 200
[DEBUG] scandir: dir: com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/javascript:void(0) vpath: com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/javascript:void(0)/
https://jenkins.acme-internal.com:3000/plugin/repository/project/acme-Installer-DSL/Build/1904/repository/com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/javascript:void(0)/ - Status code: 200

After that it keeps adding more javascript:void(0)/ segments in an infinite loop, going as far as https://jenkins.acme-internal.com:3000/plugin/repository/project/acme-Installer-DSL/Build/1904/repository/com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/javascript:void(0)/

When I break the connection it fails with

org.apache.maven.wagon.TransferFailedException: I/O error reading HTML listing of artifacts: Premature end of Content-Length delimited message body (expected: 163225600; received: 65113743
        at org.apache.maven.wagon.providers.http.wagon.shared.HtmlFileListParser.parseFileList(HtmlFileListParser.java:106)
        at org.apache.maven.wagon.providers.http.HttpWagon.getFileList(HttpWagon.java:98)
        at org.apache.maven.wagon.providers.http.HttpWagon.getFileList(HttpWagon.java:46)

It seems that the plugin is downloading and trying to parse the file as if it was a HTML page, even though the file is clearly identified as application/x-tar

< Date: Wed, 07 Dec 2016 16:17:42 GMT
< X-Content-Type-Options: nosniff
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< ETag: ""
< Last-Modified: Wed, 07 Dec 2016 11:50:08 UTC
< Content-Type: application/x-tar
< Content-Length: 163225600
< Server: Jetty(9.2.z-SNAPSHOT)
< Strict-Transport-Security: max-age=31536000; includeSubDomains

This tar file actually include some HTML pages containing javascript:void(0) links.

The remote repository actually responds to requests for paths under https://jenkins.acme-internal.com:3000/plugin/repository/project/acme-Installer-DSL/Build/1904/repository/com/acme/ui/29.4.0-SNAPSHOT/ui-29.4.0-20161207.115106-1904.tar/javascript:void(0) returning the tar file.

Also the URI is obviously interpreted wrongly -- it should read javascript: as scheme and act accordingly instead of treating it as a relative URL.

The remote repository is powered by https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Maven+Repository+Server

Failure on wagon:upload

I tried modifying a pom.xml file for a current project following the Upload instructions at http://www.mojohaus.org/wagon-maven-plugin/usage.html. However, I see the following error message:

[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0:upload (default-cli) on project peakinvestigator-validator: The parameters 'url' for goal org.codehaus.mojo:wagon-maven-plugin:1.0:upload are missing or invalid -> [Help 1]

What am I doing wrong?

Here's the output from mvn -version:

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.1", arch: "x86_64", family: "mac"

Wagon-FTP Deprecation

I noticed this morning that Maven's Wagon FTP provider has been deprecated to be removed in version4.0.0. Is there any plan for the wagon-maven-plugin to continue supporting FTP transfers once that happens?

The wagon you are using has not implemented getFileList() with quarkus platform 2.11.1.Final and later versions

When we include dependency on quarkus platform/plugin 2.11.1 and above into pom.xml then we receive

[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:2.0.2:copy (promote) on project quarkus: Error during performing repository copy: The wagon you are using has not implemented getFileList() -> [Help 1]

Detailed logs:
mvn clean initialize -Ppromote -e
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------------< test:quarkus >----------------------------
[INFO] Building quarkus 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ quarkus ---
[INFO]
[INFO] --- wagon-maven-plugin:2.0.2:copy (promote) @ quarkus ---
[INFO] Scanning remote file system: http://mavenrepo/nexus/content/repositories/pre-releases ...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.469 s
[INFO] Finished at: 2022-09-20T15:16:23+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:2.0.2:copy (promote) on project quarkus: Error during performing reposit
ory copy: The wagon you are using has not implemented getFileList() -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:2.0.2:copy (promote) on
project quarkus: Error during performing repository copy
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error during performing repository copy
at org.codehaus.mojo.wagon.AbstractCopyMojo.execute (AbstractCopyMojo.java:58)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.UnsupportedOperationException: The wagon you are using has not implemented getFileList()
at org.apache.maven.wagon.AbstractWagon.getFileList (AbstractWagon.java:988)
at org.codehaus.mojo.wagon.shared.WagonDirectoryScanner.scandir (WagonDirectoryScanner.java:290)
at org.codehaus.mojo.wagon.shared.WagonDirectoryScanner.scan (WagonDirectoryScanner.java:242)
at org.codehaus.mojo.wagon.shared.DefaultWagonDownload.getFileList (DefaultWagonDownload.java:54)
at org.codehaus.mojo.wagon.shared.DefaultWagonDownload.download (DefaultWagonDownload.java:63)
at org.codehaus.mojo.wagon.shared.DefaultWagonCopy.copy (DefaultWagonCopy.java:67)
at org.codehaus.mojo.wagon.CopyMojo.copy (CopyMojo.java:78)
at org.codehaus.mojo.wagon.AbstractCopyMojo.execute (AbstractCopyMojo.java:54)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

mvn -v
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: d:\Tools\apache-maven-3.8.6
Java version: 11.0.8, vendor: Oracle Corporation, runtime: c:\Program Files\Java\jdk-11.0.8
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

Can be reporduced with this reduced pom.xml:

<?xml version="1.0"?>

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>quarkus</artifactId>
<version>1.0.0-SNAPSHOT</version>

<properties>
	<promote.source.url>http://mavenrepo/nexus/content/repositories/pre-releases</promote.source.url>
	<promote.target.url>http://mavenrepo/nexus/content/repositories/releases</promote.target.url>
	<promote.repo.id>nexus</promote.repo.id>
	<promote.group.id>test</promote.group.id>
	<promote.artifact.id>${project.artifactId}</promote.artifact.id>
	<promote.version>${project.version}</promote.version>

</properties>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>io.quarkus.platform</groupId>
			<artifactId>quarkus-bom</artifactId>
			<version>2.11.1.Final</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>

	</dependencies>
</dependencyManagement>
<build>
	<plugins>

		<plugin>
			<groupId>io.quarkus.platform</groupId>
			<artifactId>quarkus-maven-plugin</artifactId>
			<version>2.11.1.Final</version>
			<extensions>true</extensions>
			<executions>
				<execution>
					<goals>
						<goal>build</goal>
						<goal>generate-code</goal>
						<goal>generate-code-tests</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>


<profiles>
	<profile>
		<id>promote</id>
		<activation>
			<activeByDefault>false</activeByDefault>
		</activation>
		<build>
			<plugins>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>wagon-maven-plugin</artifactId>
					<version>2.0.2</version>
					<executions>
						<execution>
							<id>promote</id>
							<phase>initialize</phase>
							<goals>
								<goal>copy</goal>
							</goals>
							<configuration>
								<source>${promote.source.url}</source>
								<target>${promote.target.url}</target>
								<sourceId>${promote.repo.id}</sourceId>
								<targetId>${promote.repo.id}</targetId>
								<fromDir>${promote.group.id}/${promote.artifact.id}/${promote.version}</fromDir>
								<toDir>${promote.group.id}/${promote.artifact.id}/${promote.version}</toDir>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</build>
	</profile>
</profiles>

When we use quarkus plaform 2.10.4 and earlier versions then it is working (of course for this specific pom "connection refused" is returned but this is ok).
Question is whether it is problem in wagon plugin or in quarkus platform, maybe someone could help us.
Thanks.

Query symbol in <fromFile>

Hi all,

I am trying to run download-single goal with 1.0 version of wagon-maven-plugin but it gives me this error:

Error handling resource: Resource missing at http://myurl/from/file%3FWSDL 404 Not Found -> [Help 1]

My plugin definition is here

<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<executions>
    <execution>
        <id>fetch-wsdl</id>
        <phase>initialize</phase>
        <goals>
            <goal>download-single</goal>
        </goals>
        <configuration>
            <url>http://myurl</url>
            <fromFile>from/file?WSDL</fromFile>
            <toFile>${project.basedir}/src/main/resources/wsdl/Consumer.wsdl</toFile>
        </configuration>
    </execution>
</executions>

If I use another url without query symbol in it works.

maven.plugin.validation warnings

Building a project using Maven 3.9.x will generate plugin validation [WARNING] log entries. These a intended to help spot problems that plugins might run into when Maven 4.x is released.

When using 'maven.plugin.validation' property with value "verbose", we see:

Plugin validation issues were detected in x plugin(s)

* org.codehaus.mojo:wagon-maven-plugin:2.0.2
 Declared at location(s):
  * XXX
 Used in module(s):
  * YYY
 Plugin issue(s):
  * Plugin depends on the deprecated Maven 2.x compatibility layer, which may not be supported in Maven 4.x
  * Plugin should declare these Maven artifacts in `provided` scope: [org.apache.maven:maven-plugin-api:3.2.5, org.apache.maven:maven-model:3.2.5, org.apache.maven:maven-core:3.2.5, org.apache.maven:maven-settings:3.2.5, org.apache.maven:maven-model-builder:3.2.5, org.apache.maven:maven-compat:3.2.5, org.apache.maven:maven-aether-provider:3.2.5, org.apache.maven:maven-repository-metadata:3.2.5, org.apache.maven:maven-settings-builder:3.2.5, org.apache.maven:maven-artifact:3.2.5]

The advise from Maven devs is:

Do not rely on maven-compat, as if you do, it means your plugin is Maven2 plugin technically (you depend on Maven3's Maven2 compatibility layer)

sshexec goal ignores sshExecutable setting in settings.xml

On windows, using the sshexec goal results in failure as the plugin wants to use the ssh command even though sshExecutable has been configured.

Stacktrace snippet:
org.apache.maven.wagon.providers.ssh.external.ScpExternalWagon.executeCommand(ScpExternalWagon.java:197)
... 24 more
Caused by: java.io.IOException: Cannot run program "ssh": CreateProcess error=2, The system cannot find the file specified

server section in Settings.xml:

	<server>
		<id>vagrantbox</id>
		<username>webservd</username>
		<configuration>
            <scpExecutable>pscp</scpExecutable>
            <sshExecutable>plink</sshExecutable>
		</configuration>
	</server>

pom.xml:
extensions:

	<extensions>
		<!-- Enabling the use of SSH -->
		<extension>
			<groupId>org.apache.maven.wagon</groupId>
			<artifactId>wagon-ssh-external</artifactId>
			<version>2.12</version>
		</extension>
	</extensions>

sshexec goal:

	<plugin>
		<groupId>org.codehaus.mojo</groupId>
		<artifactId>wagon-maven-plugin</artifactId>
		<version>1.0</version>
		<executions>
			<execution>
				<id>execute-test-commands</id>
				<phase>deploy</phase>
				<goals>
					<goal>sshexec</goal>
				</goals>
				<configuration>
					<serverId>vagrantbox</serverId>
					<url>scpexe://host/var/apache2/vagrant/chimp-platform</url>
					<commands>
						<command>/var/apache2/vagrant/chimp-platform/create-vagrant-metadata.sh</command>
					</commands>
				</configuration>
			</execution>
		</executions>
	</plugin>

debug output for command:
[DEBUG] -- end configuration -- scpexe://host/var/apache2/vagrant/chimp-platform - Session: Opened Executing command: cmd.exe /X /C "ssh -i C:\Users\abc\.ssh\id_rsa -o "BatchMode yes" webservd@host /var/apache2/vagrant/chimp-platform/create-vagrant-metadata.sh" scpexe://host/var/apache2/vagrant/chimp-platform - Session: Disconnecting scpexe://host/var/apache2/vagrant/chimp-platform - Session: Disconnected

Stacktrace:
[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0:sshexec (execute-test-commands) on project eclipse-ide: Unable to execute remote command: Error executing command line: Error while executing process. Cannot run program "ssh": CreateProcess error=2, The system cannot find the file specified -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0:sshexec (execute-test-commands) on project eclipse-ide: Unable to execute remote command
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to execute remote command
at org.codehaus.mojo.wagon.SshExecMojo.execute(SshExecMojo.java:81)
at org.codehaus.mojo.wagon.AbstractSingleWagonMojo.execute(AbstractSingleWagonMojo.java:64)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
Caused by: org.apache.maven.wagon.CommandExecutionException: Error executing command line
at org.apache.maven.wagon.providers.ssh.external.ScpExternalWagon.executeCommand(ScpExternalWagon.java:214)
at org.codehaus.mojo.wagon.SshExecMojo.execute(SshExecMojo.java:69)
... 23 more
Caused by: org.codehaus.plexus.util.cli.CommandLineException: Error while executing process.
at org.codehaus.plexus.util.cli.Commandline.execute(Commandline.java:675)
at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLineAsCallable(CommandLineUtils.java:134)
at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:105)
at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:74)
at org.apache.maven.wagon.providers.ssh.external.ScpExternalWagon.executeCommand(ScpExternalWagon.java:197)
... 24 more
Caused by: java.io.IOException: Cannot run program "ssh": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at org.codehaus.plexus.util.cli.Commandline.execute(Commandline.java:655)
... 28 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 30 more

Directory variable interpolation of ${project.build.testResources} doesn't work properly

See https://stackoverflow.com/questions/53042572/directory-variable-interpolation-of-project-build-testresources-doesnt-work ... which got deleted due to SE's deletion model recently so here it is to the full now:

I have a wagon-maven-plugin under Maven 3.5.4 in my <build>/<plugins> section with:

    <fromDir>${project.build.testResources}</fromDir>
    <includes>file</includes>

This interpolates to:

[INFO] --- wagon-maven-plugin:2.0.0:upload (publish-to-integration-test) @ <project> ---
...
[DEBUG]   (f) fromDir = <project path>\[
  Resource {targetPath: null, filtering: false,
    FileSet {directory: <project path>\src\test\resources,
      PatternSet [includes: {}, excludes: {}]}}]
[DEBUG]   (f) includes = file
...

Note the empty includes: {}!

The result is:

[INFO] Nothing to upload.

It works if I change <fromDir> to the explicit path string.

If I use <fromDir>${project.build.directory}</fromDir> in another POM it is reasonably not interpolated to a Resource object but to a simple path string:

[DEBUG]   (f) fromDir = <project path>\target

and hence works there, too.

Is this a bug or a feature of ${project.build.testResources}? But, if it is a feature, what the f...heck is it for?

UPDATE

I created an according issue on GitHub.

Be able to have wagon:upload fail if no files are found

Currently, if wagon:upload finds no files, it prints a happy message saying "no files found" and then carries on. It would be useful to be able to have this step fail if no files were found, if only to allow clearer evidence of misconfiguration of the target directory.

merge-maven-repos file upload order is not deterministic

We are using the org.codehaus.mojo:wagon-maven-plugin:1.0:merge-maven-repos to upload our artifacts to several nexus repositories (snapshots/staging/stable) in a continuous delivery pipeline.

Some of our artifacts have a custom maven packaging type (yaml), and sometimes nexus does not recognize these artifacts correctly.

We found out that it works in the cases where merge-maven-repos first uploads the pom.xml, and then the yaml file. In the cases where it first uploads the yaml file, and then the pom.xml it doesn't work.

I couldn't find any specification of the maven repository protocol, so I don't know if it is expected to upload the pom.xml first, and then the artifacts. It might be a bug in nexus.

sshexec fails on windows

Caused by: java.lang.ClassCastException: org.apache.maven.wagon.providers.ssh.external.ScpExternalWagon cannot be cast to org.apache.maven.wagon.providers.ssh.jsch.ScpWagon
   at org.codehaus.mojo.wagon.SshExecMojo.execute(SshExecMojo.java:69)
   at org.codehaus.mojo.wagon.AbstractSingleWagonMojo.execute(AbstractSingleWagonMojo.java:64)
   at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
   ... 21 more

See the end of #11

Goals "download-single" and "download" are hanging on Maven 3.6.3 and Maven 3.8.4

Our team is testing wagon-maven-plugin with different versions of Maven as we are planning to migrate from Java 8 to Java 11. We want to upgrade Maven and Tycho version also. Are new versions of Maven compatible with the plugin?

Goals "download-single" and "download" are hanging on Maven 3.6.3 and Maven 3.8.4. We use wagon-maven-plugin version 2.0.2. We tested with different versions without any success. The file download starts but was not able to be completed. The upload is working as expected. The download is just hanging and we have only broken partially downloaded file. It is working with Maven 3.5.4.

Example pom.xml file:

<project>
	[...]
	<build>
		[...]
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>3.5.1</version>
			</extension>
		</extensions>

		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>wagon-maven-plugin</artifactId>
				<version>2.0.2</version>
				<executions>
					<execution>
						<id>upload-javadoc</id>
						<phase>compile</phase>
						<goals>
							<goal>upload</goal>
						</goals>
						<configuration>
							<fromDir>local.dir</fromDir>
							<includes>*</includes>
							<excludes>pom.xml</excludes>
							<url>scp://your.remote.host/</url>
							<toDir>remote.dir</toDir>
							<optimize>true</optimize>
							<serverId>remote.server.id</serverId>
						</configuration>
					</execution>
					<execution>
						<id>download-test-data</id>
						<phase>compile</phase>
						<goals>
							<goal>download</goal>
						</goals>
						<configuration>
							<serverId>remote.server.id</serverId>
							<url>scp://your.remote.host/</url>
							<fromDir>remote.dir</fromDir>
							<includes>**/*</includes>
							<toDir>local.dir</toDir>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	[...]
</project>

Update: tested also with wagon-ssh version 3.5.1. The download is still hanging.

Improve site

  • Let's use now some properties from pom (mainly wagon api version).
  • Fix github fork link
  • Fix how to deploy site (no stage here)
  • Fix it wagon api version

The parameters 'url', 'fromFile' for goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:download-single are missing or invalid

Issue

The following plugin configuration to download a file fails

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>2.0.0</version>
                <executions>
                    <execution>
                        <id>http-download-single</id>
                        <phase>package</phase>
                        <goals>
                            <goal>download-single</goal>
                        </goals>
                        <configuration>
                            <url>http://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/durable-task/1.35</url>
                            <fromFile>durable-task-1.35.hpi</fromFile>
                            <toDir>${project.basedir}/plugins</toDir>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Stacktrace

[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:download-single (default-cli) on project jenkins-jobs-dsl: The parameters 'url', 'fromFile' for goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:download-single are missing or invalid -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:download-single (default-cli) on project jenkins-jobs-dsl: The parameters 'url', 'fromFile' for goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:download-single are missing or invalid
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginParameterException: The parameters 'url', 'fromFile' for goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:download-single are missing or invalid
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (DefaultMavenPluginManager.java:644)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:597)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] 

Info

 mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 1.8.0_275, vendor: AdoptOpenJDK, runtime: /Users/cmoullia/.sdkman/candidates/java/8.0.275.hs-adpt/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"

wagon-maven-plugin:2.0.0:download (or list) fails on Maven 3.6.3

Use case: the plugin needs to download all files from an online URL directory.
Works fine on Maven version 3.6.2 or 3.6.1 (did not try older versions) but fails on Maven 3.6.3.

In this example, I am using list goal, because it fails in the same way.
Trying to list files at https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	
	<groupId>com.example</groupId>
	<artifactId>example</artifactId>
	<version>0.1-SNAPSHOT</version>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>wagon-maven-plugin</artifactId>
				<version>2.0.0</version>
				<executions>
					<execution>
						<id>list-files</id>
						<phase>clean</phase>
						<goals>
							<goal>list</goal>
						</goals>
						<configuration>
							<url>https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries</url>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

Looks like it sees the right files, but then treats files as directories, appends a slash to full URL, tries to explore it and then fails with 404 Not Found

Here is running with 3.6.2:

d:\work\repos\edemen-test\mojohaus-wagon-maven-plugin-39> D:\devtools\java\maven\apache-maven-3.6.2\bin\mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.example:example >-------------------------
[INFO] Building example 0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ example ---
[INFO]
[INFO] --- wagon-maven-plugin:2.0.0:list (list-files) @ example ---
[INFO] Scanning remote file system: https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries ...
[INFO]  apache-maven-3.6.3-bin.tar.gz
[INFO]  apache-maven-3.6.3-bin.tar.gz.asc
[INFO]  apache-maven-3.6.3-bin.tar.gz.sha512
[INFO]  apache-maven-3.6.3-bin.zip
[INFO]  apache-maven-3.6.3-bin.zip.asc
[INFO]  apache-maven-3.6.3-bin.zip.sha512
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.416 s
[INFO] Finished at: 2020-07-14T21:45:37+01:00
[INFO] ------------------------------------------------------------------------

Everything the same, but running with 3.6.3:

d:\work\repos\edemen-test\mojohaus-wagon-maven-plugin-39> D:\devtools\java\maven\apache-maven-3.6.3\bin\mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.example:example >-------------------------
[INFO] Building example 0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ example ---
[INFO]
[INFO] --- wagon-maven-plugin:2.0.0:list (list-files) @ example ---
[INFO] Scanning remote file system: https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries ...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.064 s
[INFO] Finished at: 2020-07-14T21:45:47+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:2.0.0:list (list-files) on project example: Error handling resource: Resource missing at https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip.asc/ 404 Not Found -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Example project to reproduce can be found here: https://github.com/edemen-test/mojohaus-wagon-maven-plugin-39

Anybody has an idea how to work around this, or does this need a fix in the plugin or in Maven itself?

displayCommandOutputs doesn't print the output interactively

I'm running a code snippet

<groupId>org.codehaus.mojo</groupId>
	<artifactId>wagon-maven-plugin</artifactId>
	<version>2.0.0</version>
	<executions>
	<execution>
			
	<id>...</id>
	<goals>
		<goal>sshexec</goal>
	</goals>
	<configuration>
	  <commands>
	      <command>... long_running.sh</command>
	  </commands>
          <displayCommandOutputs>true</displayCommandOutputs>
	</configuration>
</execution>
</executions>

The long_running.sh is a huge script that can run very long time.

EXPECTED:

I expected that (like Ant sshexec) the displayCommandOutputs will write the console output immediately when a line is printed by the .sh script

ACTUALLY:
The console output is printed only after org.codehaus.mojo:wagon-maven-plugin:sshexec finishes

Add .sha256/.sha512 to WagonDirectoryScanner.NOT_DIRECTORIES

Original issue - eclipse-jdtls/eclipse.jdt.ls#1486
I'm trying to download *wrapper.jar.sha256 files from https://services.gradle.org/distributions using the following pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<artifactId>org.sample</artifactId>
	<groupId>sample</groupId>
	<version>1.0</version>
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>wagon-maven-plugin</artifactId>
				<version>2.0.0</version>
				<executions>
					<execution>
						<id>gradle-checksums-release</id>
						<phase>validate</phase>
						<goals>
							<goal>download</goal>
						</goals>
						<configuration>
							<url>https://services.gradle.org/distributions</url>
							<includes>*wrapper.jar.sha256</includes>
							<toDir>${basedir}/gradle/checksums</toDir>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

https://services.gradle.org/distributions contains 900+ *.sha256 files. The wagon-download-plugin tests if those files are directories - https://github.com/mojohaus/wagon-maven-plugin/blob/master/src/main/java/org/codehaus/mojo/wagon/shared/WagonDirectoryScanner.java#L365
Because of that, the build takes about 10 minutes on my machine.
When I add .sha256 to WagonDirectoryScanner.NOT_DIRECTORIES, the build takes less than 10 seconds.

How to avoid the RSA key fingerprint pop-up when executing the goals?

Hi,

Every time(not the first time) I execute the goals it pops up the RSA key fingerprint of remote server and ask me to continue. Is there any way to avoid this forever? Like any configuration to force this to default answer "yes"? or any way like adding the fingerprint to the plugin so that this is a "known" server?

The pop-up info looks like this:

[INFO] --- wagon-maven-plugin:2.0.2:upload-single (upload-jar-to-sever) @ my-app ---
The authenticity of host 'localhost' can't be established.
RSA key fingerprint is ef:04:e4:2d:fa:00:9f:78:29:94:b0:dc:07:32:00:ff.
Are you sure you want to continue connecting? (yes/no): yes

SshExec fails despite exit code 0 if stderr contains output

This fails just because echo writes something to stderr:

              <execution>
                <id>exec-ssh-script</id>
                <phase>install</phase>
                <goals>
                  <goal>sshexec</goal>
                </goals>
                <configuration>
                  <url>${scp.url}</url>
                  <commands>
                    <command>echo "Test 1"</command>
                    <command>echo "Test 2" &#62;&#38;2</command>
                  </commands>
                  <displayCommandOutputs>true</displayCommandOutputs>
                </configuration>
              </execution>

Expected behaviour: On exit code 0 no exception should be raised, no matter whether there is log output on stderr or not.

I do not know the code base and have no idea how to implement Maven plugins or mojos, but is this somehow related to this code snippet from Maven Wagon?

if ( streams.getErr().length() > 0 && !ignoreFailures )
{
    int exitCode = channel.getExitStatus();
    throw new CommandExecutionException( "Exit code: " + exitCode + " - " + streams.getErr() );
}

I did not find anything like this in the mojo itself, but it has got to come from somewhere.

Fix syntax errors in usage examples

Several of the usage examples does not work, because they are not syntactically correct.
There are also URL:s that point to ITs that were in Subversion. These should be updated to point to Git.

Suppress logs when uploading to s3

Given the ff

org.codehaus.mojo
wagon-maven-plugin
1.0


deploy-release
post-integration-test

upload


aws-release
s3://mybucket/report/
${project.build.directory}/report/view
${project.version}



How do suppress the logging of s3 upload for each file?, my use case is that my project generate lots of report and logging them one by one, spams the log.
Sample logs to supress:
[INFO] Uploading /myproject/target/report/view/images/built-by-maven.png to s3://myproject/report//0.0.1-SNAPSHOT/images/built-by-maven.png ...
[INFO] Uploading: s3://myproject/report/view/0.0.1-SNAPSHOT/images/built-by-maven.png

upload-single skip option removed 1.0 -> 2.0.0

Please bring back this option. It is valuable for specifying common configuration in higher level poms and then unskipping in a wide number of child poms. DRY. Please bring back the option, it is nice. :) Thanks.

Download docx files fromDir

When i am trying to download docx files i am getting error goal org.codehaus.mojo:wagon-maven-plugin:2.0.2:download failed: String must not be empty.
I guess it's because docx is some kind of archive.
What would you recommend?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.