You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/03/17 20:38:40 UTC
[maven-studies] branch maven-wrapper updated: Fix download bug
Prepare for testing with maven-integration-testing
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch maven-wrapper
in repository https://gitbox.apache.org/repos/asf/maven-studies.git
The following commit(s) were added to refs/heads/maven-wrapper by this push:
new e3e74ac Fix download bug Prepare for testing with maven-integration-testing
e3e74ac is described below
commit e3e74ace909f86ed2d5bb57485f4a34608e4b424
Author: rfscholte <rf...@apache.org>
AuthorDate: Tue Mar 17 21:38:31 2020 +0100
Fix download bug
Prepare for testing with maven-integration-testing
---
pom.xml | 4 ++-
src/assembly/bin.xml | 6 +++--
src/assembly/{source.xml => script.xml} | 9 +++++--
.../shared/.mvn/wrapper/maven-wrapper.properties | 5 ++--
src/assembly/shared/mvnw | 4 +--
src/assembly/shared/mvnw.cmd | 4 +--
src/assembly/source.xml | 2 ++
src/assembly/source/MavenWrapperDownloader.java | 16 ++++++------
.../java/org/apache/maven/wrapper/Installer.java | 29 +++++++++++++++++++---
.../org/apache/maven/wrapper/MavenWrapperMain.java | 12 ++++-----
10 files changed, 61 insertions(+), 30 deletions(-)
diff --git a/pom.xml b/pom.xml
index 4dd34c9..420df7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<version>34</version>
</parent>
<artifactId>maven-wrapper</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>3.7.0-SNAPSHOT</version>
<name>Maven Wrapper</name>
<licenses>
@@ -21,6 +21,7 @@
</properties>
<build>
+ <finalName>${project.artifactId}</finalName> <!-- to simplify installation for maven-integration-testing -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -35,6 +36,7 @@
</executions>
<configuration>
<descriptors>
+ <descriptor>src/assembly/script.xml</descriptor>
<descriptor>src/assembly/bin.xml</descriptor>
<descriptor>src/assembly/source.xml</descriptor>
</descriptors>
diff --git a/src/assembly/bin.xml b/src/assembly/bin.xml
index c4de11d..5f350a6 100644
--- a/src/assembly/bin.xml
+++ b/src/assembly/bin.xml
@@ -24,13 +24,15 @@ under the License.
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>bin</id>
<formats>
- <format>zip</format>
+ <format>tar.gz</format>
+ <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/assembly/shared</directory>
<outputDirectory>.</outputDirectory>
+ <filtered>true</filtered>
</fileSet>
<fileSet>
<directory>target</directory>
@@ -42,7 +44,7 @@ under the License.
</fileSets>
<files>
<file>
- <source>target/maven-wrapper-${project.version}.jar</source>
+ <source>target/maven-wrapper.jar</source>
<outputDirectory>.mvn/wrapper</outputDirectory>
<destName>maven-wrapper.jar</destName> <!-- TODO include version -->
</file>
diff --git a/src/assembly/source.xml b/src/assembly/script.xml
similarity index 88%
copy from src/assembly/source.xml
copy to src/assembly/script.xml
index dbc6b72..0101258 100644
--- a/src/assembly/source.xml
+++ b/src/assembly/script.xml
@@ -22,18 +22,23 @@ under the License.
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
- <id>source</id>
+ <id>script</id>
<formats>
<format>tar.gz</format>
+ <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/assembly/shared</directory>
<outputDirectory>.</outputDirectory>
+ <filtered>true</filtered>
</fileSet>
<fileSet>
- <directory>src/assembly/source</directory>
+ <directory>target</directory>
+ <includes>
+ <include></include>
+ </includes>
<outputDirectory>.mvn/wrapper</outputDirectory>
</fileSet>
</fileSets>
diff --git a/src/assembly/shared/.mvn/wrapper/maven-wrapper.properties b/src/assembly/shared/.mvn/wrapper/maven-wrapper.properties
index aff1512..a2987ea 100644
--- a/src/assembly/shared/.mvn/wrapper/maven-wrapper.properties
+++ b/src/assembly/shared/.mvn/wrapper/maven-wrapper.properties
@@ -14,6 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
-
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${project.version}/apache-maven-${project.version}-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/maven-wrapper/${project.version}/maven-wrapper-${project.version}.jar
diff --git a/src/assembly/shared/mvnw b/src/assembly/shared/mvnw
index 41c0f0c..7cdb59c 100644
--- a/src/assembly/shared/mvnw
+++ b/src/assembly/shared/mvnw
@@ -212,9 +212,9 @@ else
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
- jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+ jarUrl="$MVNW_REPOURL/org/apache/maven/maven-wrapper/${project.version}/maven-wrapper-${project.version}.jar"
else
- jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+ jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/maven-wrapper/${project.version}/maven-wrapper-${project.version}.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
diff --git a/src/assembly/shared/mvnw.cmd b/src/assembly/shared/mvnw.cmd
index 8611571..3eb2ef4 100644
--- a/src/assembly/shared/mvnw.cmd
+++ b/src/assembly/shared/mvnw.cmd
@@ -120,7 +120,7 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/maven-wrapper/${project.version}/maven-wrapper-${project.version}.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
@@ -134,7 +134,7 @@ if exist %WRAPPER_JAR% (
)
) else (
if not "%MVNW_REPOURL%" == "" (
- SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+ SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/maven-wrapper/${project.version}/maven-wrapper-${project.version}.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
diff --git a/src/assembly/source.xml b/src/assembly/source.xml
index dbc6b72..f830853 100644
--- a/src/assembly/source.xml
+++ b/src/assembly/source.xml
@@ -25,12 +25,14 @@ under the License.
<id>source</id>
<formats>
<format>tar.gz</format>
+ <format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/assembly/shared</directory>
<outputDirectory>.</outputDirectory>
+ <filtered>true</filtered>
</fileSet>
<fileSet>
<directory>src/assembly/source</directory>
diff --git a/src/assembly/source/MavenWrapperDownloader.java b/src/assembly/source/MavenWrapperDownloader.java
index b901097..3b6cc0a 100644
--- a/src/assembly/source/MavenWrapperDownloader.java
+++ b/src/assembly/source/MavenWrapperDownloader.java
@@ -20,11 +20,12 @@ import java.util.Properties;
public class MavenWrapperDownloader {
- private static final String WRAPPER_VERSION = "0.5.6";
+ private static final String WRAPPER_VERSION = "${project.version}";
+
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
- private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
@@ -106,12 +107,11 @@ public class MavenWrapperDownloader {
});
}
URL website = new URL(urlString);
- ReadableByteChannel rbc;
- rbc = Channels.newChannel(website.openStream());
- FileOutputStream fos = new FileOutputStream(destination);
- fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
- fos.close();
- rbc.close();
+ try ( ReadableByteChannel rbc = Channels.newChannel( website.openStream() );
+ FileOutputStream fos = new FileOutputStream(destination) )
+ {
+ fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+ }
}
}
diff --git a/src/main/java/org/apache/maven/wrapper/Installer.java b/src/main/java/org/apache/maven/wrapper/Installer.java
index 1be51c4..a8d8dce 100644
--- a/src/main/java/org/apache/maven/wrapper/Installer.java
+++ b/src/main/java/org/apache/maven/wrapper/Installer.java
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.nio.file.FileVisitResult;
+import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
@@ -80,7 +81,7 @@ public class Installer
if ( alwaysDownload || !Files.exists( localZipFile ) )
{
Path tmpZipFile = localZipFile.resolveSibling( localZipFile.getFileName() + ".part" );
- Files.delete( tmpZipFile );
+ Files.deleteIfExists( tmpZipFile );
Logger.info( "Downloading " + distributionUrl );
download.download( distributionUrl, tmpZipFile );
Files.move( tmpZipFile, localZipFile );
@@ -92,8 +93,30 @@ public class Installer
if ( downloaded || alwaysUnpack || dirs.isEmpty() )
{
- Logger.info( "Deleting directory " + distDir.toAbsolutePath() );
- deleteDir( distDir );
+ Files.walkFileTree( distDir.toAbsolutePath(), new SimpleFileVisitor<Path>()
+ {
+ @Override
+ public FileVisitResult postVisitDirectory( Path dir, IOException exc )
+ throws IOException
+ {
+ if ( dir.getParent().equals( distDir ) )
+ {
+ Logger.info( "Deleting directory " + distDir.toAbsolutePath() );
+ Files.delete( dir );
+ }
+ return FileVisitResult.CONTINUE;
+ }
+
+ public FileVisitResult visitFile( Path file, BasicFileAttributes attrs )
+ throws IOException
+ {
+ if ( !file.getParent().equals( distDir ) )
+ {
+ Files.delete( file );
+ }
+ return FileVisitResult.CONTINUE;
+ };
+ } );
Logger.info( "Unzipping " + localZipFile.toAbsolutePath() + " to " + distDir.toAbsolutePath() );
unzip( localZipFile, distDir );
diff --git a/src/main/java/org/apache/maven/wrapper/MavenWrapperMain.java b/src/main/java/org/apache/maven/wrapper/MavenWrapperMain.java
index 772e2e6..ad7777c 100644
--- a/src/main/java/org/apache/maven/wrapper/MavenWrapperMain.java
+++ b/src/main/java/org/apache/maven/wrapper/MavenWrapperMain.java
@@ -35,7 +35,7 @@ import org.apache.maven.wrapper.cli.SystemPropertiesCommandLineConverter;
* @author Hans Dockter
*/
public class MavenWrapperMain
-{
+{
private static final String POM_PROPERTIES = "/META-INF/maven/org.apache.maven/maven-wrapper/pom.properties";
public static final String DEFAULT_MAVEN_USER_HOME = System.getProperty( "user.home" ) + "/.m2";
@@ -52,10 +52,8 @@ public class MavenWrapperMain
public static final String MVNW_REPOURL = "MVNW_REPOURL";
- public static final String MVN_VERSION = "3.6.3";
-
- public static final String MVN_PATH =
- "org/apache/maven/apache-maven/" + MVN_VERSION + "/apache-maven-" + MVN_VERSION + "-bin.zip";
+ public static final String MVN_PATH =
+ "org/apache/maven/apache-maven/" + wrapperVersion() + "/apache-maven-" + wrapperVersion() + "-bin.zip";
public static void main( String[] args )
throws Exception
@@ -65,7 +63,6 @@ public class MavenWrapperMain
Path rootDir = rootDir( wrapperJar );
String wrapperVersion = wrapperVersion();
- Logger.info( "Apache Maven Wrapper " + wrapperVersion );
try
{
@@ -136,7 +133,8 @@ public class MavenWrapperMain
if ( resourceAsStream == null )
{
- throw new RuntimeException( "No maven properties found." );
+ return "3.7.0-SNAPSHOT";
+// throw new RuntimeException( "No maven properties found." );
}
Properties mavenProperties = new Properties();
mavenProperties.load( resourceAsStream );