LoginSignup
0
0

More than 3 years have passed since last update.

IntelliJ を Maven artifact からスタートした時の問題

Last updated at Posted at 2019-05-12

インテリセンスや、ライブラリをエディタが認識できない

IntelliJ を使っていて、Maven artifact 生成からプロジェクトを開始した時にインテリセンスはおろか、Mavenのタスクだとコンパイルできるのに、エディタが認識しない。結構悩んだけど、これをヒントに解いた

結局したとこは、

プロジェクト右クリック > Maven > ReImport

で解決。(そんなん知らんわ)

ちなみに、その前に調査しているときに、関係ないと思うけど、ソースディレクトリと、テストのディレクトリの設定をした。
場所が、プロジェクトを選択して、File > Project Settings > Modules > Source で設定できる。

でも多分ReImportで解決していると思われる。

Kafka Client をIntelliJで実行すると slf4j エラー

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

くそハマった。これは、上記のURLを見ると、ライブラリをpom.xml に足すと良いと言われる。ブログや、スタックオーバーフローもそう言っているが、全く解決できなかった。しかし、知らん間に治った。おそらく、ライブラリを追加した設定が本来有効であるはずなのに、古いものをみていた雰囲気があるが、今となっては原因はわからない。

   <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
      <version>1.7.25</version>
    </dependency>

pom.xml に上記のをたして、clear,install,compile とかしても、治らなかったので、手動で確認しようとして、下記のプラグインを入れて、ゴネゴネしていて、久々にIntelliJから実行すると、意味わからないけど、動作した。

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.2.1</version>
          <configuration>
            <mainClass>simplearchitect.App</mainClass>
          </configuration>
        </plugin>

これは多分IntelliJの挙動を私が理解していないため。このライブラリは、IntelliJ からではなく、MavenのDependencyを参照しながら、アプリをマニュアルで実行するプラグイン。mvn exec:java で動作する。こちらでは問題なく動いていた。

ちなみに、ターゲットのライブラリのバージョンを知るには

mvn dependency:tree

もしくは、IntelliJ のmaven パネルで確認すると良い。

Error: java: javacTask:source release 8 requires target release 1.8

これは、artifact で生成したテンプレートが、1.7になっていたため。pom.xmlを書き換える。

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

しかし、これだけではダメで、上記のReImport が必要。Preference > Build, Execution, Deployment > Compiler > Java Compiler のプロジェクトの、Target bytecode version が古いままのため。

忘れないようにメモ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0