Maven-Wrapper in jHipster inside Docker-Container: FileNotFoundException
Maven-Wrapper in jHipster inside Docker-Container: FileNotFoundException
我在 lubuntu 16.4 上的虚拟机 运行ning 中安装了 docker。之后我按照this教程拉取容器jhipster/jhipster。使用 docker exec -it jhipster bash
访问它工作正常,通过 yo jhipster
创建应用程序的过程也是如此。但是当我想通过 ./mvnw
使用 Maven 包装器 运行 它时,会发生以下错误(不到一秒后):
Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
Exception in thread "main" java.io.FileNotFoundException: /home/jhipster/.m2/wrapper/dists/apache-maven-3.3.9-bin/2609u9g41na2l7ogackmif6fj2/apache-maven-3.3.9-bin.zip.part (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.apache.maven.wrapper.DefaultDownloader.downloadInternal(DefaultDownloader.java:69)
at org.apache.maven.wrapper.DefaultDownloader.download(DefaultDownloader.java:60)
at org.apache.maven.wrapper.Installer.createDist(Installer.java:64)
at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:121)
at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:50)
容器内部似乎没有安装maven,但这就是mvnw 的用途,对吧?无论如何,由于缺少 su 权限(未找到 sudo,su 有效 "only from terminal"),我无法自己(在容器内)安装 maven。
我不明白这是怎么回事...你能帮忙吗?
PS: .m2 目录为空。
我假设您按照教程说明将 vm 中的 maven 文件夹映射到 docker 容器中的 /home/jhipster/.m2 文件夹。我发现如果虚拟机尚未安装 maven,则虚拟机中的 ~/.m2 文件夹是使用 root 所有者创建的。不知道如何或为什么。结果,docker 容器中的 jhipster 用户没有权限写入 /home/jhipster/.m2 文件夹。您应该能够通过将文件夹的所有者(从 vm 内)更改为您正在使用的用户来修复它 运行 docker.
我在 lubuntu 16.4 上的虚拟机 运行ning 中安装了 docker。之后我按照this教程拉取容器jhipster/jhipster。使用 docker exec -it jhipster bash
访问它工作正常,通过 yo jhipster
创建应用程序的过程也是如此。但是当我想通过 ./mvnw
使用 Maven 包装器 运行 它时,会发生以下错误(不到一秒后):
Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
Exception in thread "main" java.io.FileNotFoundException: /home/jhipster/.m2/wrapper/dists/apache-maven-3.3.9-bin/2609u9g41na2l7ogackmif6fj2/apache-maven-3.3.9-bin.zip.part (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at org.apache.maven.wrapper.DefaultDownloader.downloadInternal(DefaultDownloader.java:69)
at org.apache.maven.wrapper.DefaultDownloader.download(DefaultDownloader.java:60)
at org.apache.maven.wrapper.Installer.createDist(Installer.java:64)
at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:121)
at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:50)
容器内部似乎没有安装maven,但这就是mvnw 的用途,对吧?无论如何,由于缺少 su 权限(未找到 sudo,su 有效 "only from terminal"),我无法自己(在容器内)安装 maven。
我不明白这是怎么回事...你能帮忙吗?
PS: .m2 目录为空。
我假设您按照教程说明将 vm 中的 maven 文件夹映射到 docker 容器中的 /home/jhipster/.m2 文件夹。我发现如果虚拟机尚未安装 maven,则虚拟机中的 ~/.m2 文件夹是使用 root 所有者创建的。不知道如何或为什么。结果,docker 容器中的 jhipster 用户没有权限写入 /home/jhipster/.m2 文件夹。您应该能够通过将文件夹的所有者(从 vm 内)更改为您正在使用的用户来修复它 运行 docker.