【发布时间】:2014-10-24 17:08:22
【问题描述】:
我想将一个工件安装到 ~/.m2 并在另一个 repo 中使用它,但在后者上失败了。
1)
我使用命令mvn clean install 构建apache-spark,它在他们的spark/assembly/target/scala2.10 文件夹中给了我一个罐子spark-assembly-1.2.0-SNAPSHOT-hadoop1.0.4.jar
$ ls -l assembly/target/scala2.10/
total 12
drwxrwxr-x 2 prayagupd prayagupd 4096 Oct 24 16:52 ./
drwxrwxr-x 6 prayagupd prayagupd 4096 Oct 24 16:52 ../
-rw-rw-r-- 1 prayagupd prayagupd 3117 Oct 24 16:52 spark-assembly-1.2.0-SNAPSHOT-hadoop1.0.4.jar
看起来jar中没有类,
$ jar tvf spark-assembly-1.2.0-SNAPSHOT-hadoop1.0.4.jar
0 Sat Oct 25 03:31:14 NPT 2014 META-INF/
133 Sat Oct 25 03:31:14 NPT 2014 META-INF/MANIFEST.MF
0 Sat Oct 25 03:31:14 NPT 2014 org/
0 Sat Oct 25 03:31:14 NPT 2014 org/apache/
0 Sat Oct 25 03:31:14 NPT 2014 org/apache/spark/
0 Sat Oct 25 03:31:14 NPT 2014 org/apache/spark/unused/
318 Sat Oct 25 03:31:14 NPT 2014 org/apache/spark/unused/UnusedStubClass.class
0 Sat Oct 25 03:31:14 NPT 2014 META-INF/maven/
0 Sat Oct 25 03:31:14 NPT 2014 META-INF/maven/org.spark-project.spark/
0 Sat Oct 25 03:31:14 NPT 2014 META-INF/maven/org.spark-project.spark/unused/
2356 Sat Oct 25 03:31:14 NPT 2014 META-INF/maven/org.spark-project.spark/unused/pom.xml
114 Sat Oct 25 03:31:14 NPT 2014 META-INF/maven/org.spark-project.spark/unused/pom.properties
0 Sat Oct 25 03:31:14 NPT 2014 META-INF/NOTICE
2) 现在,我想将 spark-assembly-1.2.0-SNAPSHOT jar 用作另一个项目的 mvn 依赖项。所以,我将该文件安装在本地 maven 中
$ mvn -X install:install-file -Dfile=spark-assembly-1.2.0-SNAPSHOT-hadoop1.0.4.jar
-DgroupId=org.apache.spark
-DartifactId=spark-assembly
-Dversion=1.2.0-SNAPSHOT
-Dclassifier=javadoc
-Dpackaging=jar
-DgeneratePom=true
这给了我~/.m2/repository/org/apache/spark/spark-assembly
$ ll ~/.m2/repository/org/apache/spark/spark-assembly/1.2.0-SNAPSHOT/
total 24
drwxrwxr-x 2 prayagupd prayagupd 4096 Oct 24 23:14 ./
drwxrwxr-x 3 prayagupd prayagupd 4096 Oct 24 23:14 ../
-rw-rw-r-- 1 prayagupd prayagupd 757 Oct 24 23:14 maven-metadata-local.xml
-rw-rw-r-- 1 prayagupd prayagupd 206 Oct 24 23:14 _maven.repositories
-rw-rw-r-- 1 prayagupd prayagupd 3117 Oct 24 16:52 spark-assembly-1.2.0-SNAPSHOT-javadoc.jar
-rw-rw-r-- 1 prayagupd prayagupd 483 Oct 24 23:14 spark-assembly-1.2.0-SNAPSHOT.pom
spark-assembly/1.2.0-SNAPSHOT/里面spark-assembly-1.2.0-SNAPSHOT.pom的内容是
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0
.0"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <modelVersion>4.0.0</modelVersion>
5 <groupId>org.apache.spark</groupId>
6 <artifactId>spark-assembly</artifactId>
7 <version>1.2.0-SNAPSHOT</version>
8 <description>POM was created from install:install-file</description>
9 </project>
3) 现在,我想在另一个 maven 项目 talk-to-s3-http 中使用它作为依赖项,
+ 15 <spark.vesion>1.2.0-SNAPSHOT</spark.vesion>
+ 76 <dependency>
+ 77 <groupId>org.apache.spark</groupId>
+ 78 <artifactId>spark-assembly</artifactId>
+ 79 <version>${spark.vesion}</version>
+ 80 <scope>provided</scope>
+ 81 </dependency>
但它会抛出如下错误,
$ mvn clean compile -U
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building talk-to-s3-http 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.844s
[INFO] Finished at: Fri Oct 24 22:19:52 NPT 2014
[INFO] Final Memory: 7M/97M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project talk-to-s3-http: Could not resolve dependencies for project com.pseudononymous:talk-to-s3-http:jar:1.0-SNAPSHOT: Could not find artifact org.apache.spark:spark-assembly:jar:1.2.0-SNAPSHOT -> [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/DependencyResolutionException
部署而不是安装 jar 都不起作用。
mvn -X deploy:deploy-file -Dfile=spark-assembly-1.2.0-SNAPSHOT-hadoop1.0.4.jar
-Durl=file:///home/prayagupd/.m2/repository/
-DgroupId=org.apache.spark
-DartifactId=spark-assembly
-Dversion=1.2.0-SNAPSHOT
-Dclassifier=javadoc
-Dpackaging=jar
-DgeneratePom=true
【问题讨论】:
-
~/.m2/repository/org/apache/spark/spark-assembly/1.2.0-SNAPSHOT/目录下的pom文件内容是什么? -
感谢@RobertScholte 当场发现错误。 \,,/ 请把它作为答案发布。