5

Maven プロジェクトをインポートして、新しい IntelliJ プロジェクトを作成しました。うまくいきました: ここに画像の説明を入力

Maven Projects ペイン (IDE 画面の左側) から Maven ゴールを実行できます。たとえば、コンパイル ゴールを使用してプロジェクトを問題なくコンパイルできます。

Build|Make Projectオプションを使用して、UI からプロジェクトをビルドします。しかし、うまくいきません。依存関係が表示されないかのように、不足しているアプリケーション パッケージについて不平を言います。これらの依存関係はそれぞれの pom.xml ファイルで定義されていますが、IDE からプロジェクトを作成すると無視されるようです。

それを機能させるにはどうすればよいですか?

編集

OK、ホームから.m2ディレクトリを削除し、Maven プロジェクト フライアウトからコンパイル ゴールを開始しました。コンソール ペインで、maven が Maven Central から依存関係をダウンロードしていることがわかります (ログの最初の数行だけを示していますが、かなり長いです)。

"C:\Program Files (x86)\Java\jdk1.6.0_29\bin\java" -Dclassworlds.conf=O:\java\apache-maven-3.0.4\bin\m2.conf -Dmaven.home=O:\java\apache-maven-3.0.4 -Didea.launcher.port=7534 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 11.1.2\bin" -Dfile.encoding=UTF-8 -classpath "O:\java\apache-maven-3.0.4\boot\plexus-classworlds-2.4.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 11.1.2\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher --no-plugin-registry --fail-fast --strict-checksums --update-snapshots -f C:\dev\shunra\Application\Builder\build\vcat\pom.xml compile
[WARNING] Command line option -npr is deprecated and will be removed in future Maven versions.
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.shunra:VCat-build:pom:1.0.0.SNAPSHOT
[WARNING] 'version' uses an unsupported snapshot version format, should be '*-SNAPSHOT' instead. @ line 7, column 11
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] util.logging
[INFO] Infra
[INFO] dtos
[INFO] commons
[INFO] license
[INFO] core
[INFO] vcat
[INFO] VCat-build
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building util.logging 0.0.1
[INFO] ------------------------------------------------------------------------
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom (7 KB at 7.2 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom (11 KB at 38.7 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/19/maven-parent-19.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/19/maven-parent-19.pom (25 KB at 70.0 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/apache/9/apache-9.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/apache/9/apache-9.pom (15 KB at 63.5 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar (26 KB at 63.1 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom (8 KB at 29.6 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom (13 KB at 53.6 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/16/maven-parent-16.pom (23 KB at 66.8 KB/sec)
Downloading: http://repo.maven.apache.org/maven2/org/apache/apache/7/apache-7.pom
Downloaded: http://repo.maven.apache.org/maven2/org/apache/apache/7/apache-7.pom (15 KB at 59.5 KB/sec)

したがって、Maven Central への接続には問題はないと思います。

EDIT2

注意してください: ここに画像の説明を入力 問題に注意してください - Maven からインポートされた 2 つのモジュール - CommonCoreがあります。それらの Maven アーティファクト ID は、それぞれcommonscoreです。次の理由により、IntelliJ はアーティファクト ID とモジュール名を混同しているようです。

  1. プロジェクト フライアウトには、モジュール名とそれに続くそれぞれの Maven アーティファクト ID が括弧内に表示されます。
  2. プロジェクト設定ダイアログでは、モジュールはそれぞれの Maven アーティファクト ID のみで指定されます。
  3. ただし、モジュールの依存関係には、モジュール名のみがリストされています。

Coreモジュール (maven artifact Id core )は、依存関係Commonモジュール (maven artifact Id commons ) を参照する必要がありますが、そうではなく、これが問題です。

EDIT3

最上位の pom.xml は次のとおりです。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.shunra</groupId>
    <name>VCat-build</name>
    <version>1.0.0.SNAPSHOT</version>
    <artifactId>VCat-build</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>../../../util.logging</module>
        <module>../../../Infra</module>
        <module>../../../DTOs</module>
        <module>../../../ShunraLicense</module>
        <module>../../../Common</module>
        <module>../../../Core</module>
        <module>../../../VCat</module>
    </modules>
    <build>
        <plugins>
        </plugins>
    </build>
</project>

以下は、Common モジュール用のものです。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.shunra</groupId>
  <artifactId>commons</artifactId>
  <version>0.0.1</version>
  <dependencies>
        <dependency>
            <groupId>com.sun.jna</groupId>
            <artifactId>jna</artifactId>
            <version>3.0.9</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-math</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.4</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2.7</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
                <groupId>com.shunra</groupId>
                <artifactId>util.logging</artifactId>
                <version>0.0.1</version>
        </dependency>
        <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>1.6</version>
                <scope>compile</scope>
        </dependency>
        <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.6</version>
                <scope>compile</scope>
        </dependency>
        <dependency>
              <groupId>org.restlet.jse</groupId>
              <artifactId>org.restlet</artifactId>
              <version>2.0.10</version>
        </dependency>
        <dependency>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
          <version>1</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>1.8</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.3</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
<!--        <dependency>
            <groupId>com.shunra</groupId>
            <artifactId>license</artifactId>
            <version>0.0.1</version>
        </dependency> -->
        <dependency>
              <groupId>com.shunra</groupId>
              <artifactId>dtos</artifactId>
              <version>0.0.1</version>
        </dependency>
  </dependencies>
    <repositories>
    <repository>
       <id>maven-restlet</id>
       <name>Public online Restlet repository</name>
       <url>http://maven.restlet.org</url>
    </repository> 
   </repositories>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source/>
          <target/>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

そして、ここに Core モジュールのものがあります:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.shunra</groupId>
  <artifactId>core</artifactId>
  <version>0.0.1</version>
  <dependencies>
    <dependency>
      <groupId>com.shunra</groupId>
      <artifactId>commons</artifactId>
      <version>0.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.shunra</groupId>
        <artifactId>license</artifactId>
        <version>0.0.1</version>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source/>
          <target/>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

EDIT4

最後にそれを解決しました。すべての Intellij ファイルを削除し、再度インポートしました。私は、pom.xml ファイルが変更され、IntelliJ を混乱させていると思います。

4

1 に答える 1

5

スクリーンショットを見ると、この問題の最も一般的な原因であるオフラインで作業しているようには見えません。

  1. Maven プロジェクト フライアウト (左から 3 番目のアイコン) からソースとドキュメントをダウンロードしてみてください。これにより、多くの場合、起動してダウンロードが発生するという効果があります。

  2. ランタイム構成を使用して手動で Maven ビルドを実行します。[構成の編集] | [構成の編集] を選択します。次に Maven は、作業ディレクトリがプロジェクト ルートであることを確認し、「クリーン パッケージ」の目標を選択します。これにより、Intellij は Maven を介して直接再構築され、内部のバックグラウンド ビルド プロセスが起動する可能性があります。

  3. 設定を確認し、Intelj の Maven が POM からリポジトリ情報を正しく読み取り、Maven Central を見つけることができることを確認してください。ダウンロードを妨げているローカルの settings.xml に問題がある可能性があります。

  4. .idea および .iml ファイルを削除して、プロジェクトの再インポートを強制することもできます。

  5. Intellij を再起動して、最善を尽くしてください...

  6. 最後の手段として、[ファイル] | [ファイル] を使用してキャッシュを無効にします。キャッシュを無効にします。これにより、使用によって再構築されるまで、開発が少し遅くなる可能性があります。

更新された質問をカバーするために編集

POM ファイルが少し混乱しているようです。これらは標準のMaven ディレクトリ レイアウトに従っていないため、Intellij がディレクトリ名と内部の artifactId エントリの間で混乱する可能性があります。多くの場合、親 POM (モジュールを含む) はプロジェクトのルートに配置され、モジュールはその下のディレクトリ階層を形成します。

いくつかの広範な設定構成を使用すると、Intellij を既存の構造で動作させることができますが、より良い解決策は、ディレクトリの名前を artifactId に一致するように変更し、モジュールを移動して Maven リアクター プロジェクトを形成することです。

コメントに照らしてさらに編集

Intellij プロジェクトの同期だったようです。.idea ディレクトリと .iml ファイルを削除するとうまくいきました。それに応じてリストを更新しました。

于 2013-01-08T12:21:22.867 に答える