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