Idea 打开多profile注意事项


Maven项目经常会有多个profile,可以方便在编译时指定profile。 如果有多个profile,idea 在打开工程后默认配置可能会有些问题。

例如:

最近在编译一个项目:https://github.com/JoshRosen/hive 

编译命令使用:

mvn  clean install -gs /xx/maven-settings.xml -Phadoop-2 -DskipTests

编译成功后使用idea打开工程,但是有类报错。

HiveConf.java 的  import org.apache.hadoop.conf.Configuration; 报错: Configuration找不到。

经过分析发现, hive的maven工程对hadoop的依赖有两个profile。

<profiles>
    <profile>
      <id>hadoop-1</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-core</artifactId>
          <version>${hadoop-20S.version}</version>
         <optional>true</optional>
        </dependency>
      </dependencies>
    </profile>
   <profile>
      <id>hadoop-2</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-common</artifactId>
          <version>${hadoop-23.version}</version>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-mapreduce-client-core</artifactId>
          <version>${hadoop-23.version}</version>
          <optional>true</optional>
        </dependency>
      </dependencies>
    </profile>

  第一个为1.2.1的版本,第二个为2.6的版本。编译时指定的是-Phadoop-2

但是idea打开时不知道要选择哪个profile,编译器寻找类时,默认选择第一个。所以此时会报错。

解决方法:打开idea mven 配置手动勾选profile。 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM