开发者社区> 问答> 正文

强制maven使用本地依赖

我有一个使用spark graphX模块的Spark代码。我需要在graphX中进行更改并强制我的项目使用graphX的这个修改版本。为了做到这一点,我首先从spark源代码中取出了graphx模块并独立编译。然后我在我的应用程序pom.xml文件中指定依赖项,该文件的范围是“system”。有我的应用程序pom。

<?xml version="1.0" encoding="UTF-8"?>
http://maven.apache.org/maven-v4_0_0.xsd">
edu.asu.gears.examples.spark
PageRank
jar
"PageRank"
1.0
4.0.0


    <java.version>1.8.0</java.version>
<scala.version>2.11.8</scala.version>
<scala.binary.version>2.11</scala.binary.version>
    <scala.tools.version>2.11</scala.tools.version>
<spark.version>2.3.2</spark.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<blaze.version>1.0</blaze.version>
<blaze.base>/home/user/sbiookag/blaze-master</blaze.base>

<pluginRepository>
  <id>scala-tools.org</id>
  <name>Scala-tools Maven2 Repository</name>
  <url>http://scala-tools.org/repo-releases</url>
</pluginRepository>


    <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-graphx_${scala.binary.version}</artifactId>
            <version>${spark.version}</version>
            <scope>system</scope>
            <systemPath>${blaze.base}/examples/pageRank/APPs/GraphXFPGAApp/graphx/target/spark-graphx_2.11-3.0.0-SNAPSHOT.jar</systemPath>
    </dependency>

    <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
    </dependency>
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_${scala.binary.version}</artifactId>
  <version>${spark.version}</version>
</dependency>
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-mllib_${scala.binary.version}</artifactId>
  <version>${spark.version}</version>
</dependency>
    <!--
<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>blaze_${scala.binary.version}</artifactId>
  <version>1.0.1</version>
</dependency>
    -->


<plugins>
  <plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>



当我编译我的代码时,它仍然下载graphx依赖项,似乎它在运行时也使用原始的jar文件。我真的不知道如何解决这个问题。

展开
收起
社区小助手 2018-12-05 14:46:29 3471 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    park-mllib包含依赖spark-graphx。您应该在pom.xml中将其排除:


    org.apache.spark
    spark-mllib_${scala.binary.version}
    ${spark.version}

    <exclusion>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-graphx_${scala.binary.version}</artifactId>
    </exclusion>


    2019-07-17 23:18:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载