web-dev-qa-db-ja.com

IntelliJ - Javaプロジェクト/モジュールをMavenプロジェクト/モジュールに変換する

私はBitbucketのプロジェクトをしています。情報源だけがコミットされます。プロジェクトを新しいマシンに取得するには、IntelliJ内から[バージョン管理]> [バージョン管理からチェックアウト]を使用しました。

それから、このソースから新しいプロジェクトを作成したいかどうかを尋ねます。ここまでは順調ですね。それは私にとっては一つのモジュールからなる素敵な小さなJavaプロジェクトを作成します。

しかし、このプロジェクトをIntelliJに取り入れる私の目標は、それをMavenプロジェクトに変えることでした。私はこれを可能にする任意の場所を見つけることができません!

IntelliJに名前とartifactIdとリポジトリを付けて基本的な空のpom.xmlを生成する方法はありますか?または、そもそもプロジェクトをMavenプロジェクトとしてインポートする方法はありますか? (私が既存のソースからプロジェクトを作成しようとするときはいつでも、それは私にJavaプロジェクトのオプションしか与えません。)

372
Neil Traft

モジュールを右クリックして、[Add framework support ...]を選択し、[Maven]テクノロジを確認します。

(これはあなたが修正するためのpom.xmlも作成します。)

ソースリポジトリの要素を追加するということであれば、手動でそれを行う必要があると思います。

これは、プロジェクトを Maven標準ディレクトリレイアウト 、13+に変換しません。

715
Dave Newton

それから恩恵を受ける人々のためのビジュアル。

enter image description here

プロジェクト名(この例では "test")を右クリックした後、[Add framework support]を選択して[Maven]オプションをチェックします。

64
Crt
  1. 「Mavenプロジェクト」を開きます(右側のタブ)。
  2. 「Mavenプロジェクトを追加」を使用する
  3. あなたのpom.xmlを探す
29
FazoM

私はこのようにプロジェクトを変換することはあなたがより大きなプロジェクトを持っているとき顕著である副作用を持つことができるという重要なヒントを加えたいです。これは、Intellij Idea(2017)がpom.xmlからのみいくつかの重要な設定を取得するため、混乱を招く可能性があるためです。少なくとも以下のセクションが影響を受けます。

  1. モジュールの注釈設定が変更されました
  2. モジュールのコンパイラ出力パスが変更されました
  3. リソース設定は完全に無視され、pom.xmlからのみ取得されます
  4. モジュールの依存関係がめちゃくちゃになっているため、チェックする必要があります。
  5. モジュールの言語/エンコード設定が変更されました

これらすべての点を見直して調整する必要がありますが、これ以降は魅力的に機能します。

さらに残念ながら、十分な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>Name</groupId>
<artifactId>Artifact</artifactId>
<version>4.0</version>
<properties>
    <!-- Generic properties -->
    <Java.version>1.8</Java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
    <!--All dependencies to put here, including module dependencies-->
</dependencies>
<build>
    <resources>
        <resource>
            <directory>${project.basedir}/src/main/Java</directory>
            <excludes>
                <exclude>**/*.Java</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <includes>
                <include>*</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <annotationProcessors/>
                <source>${Java.version}</source>
                <target>${Java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>
4
Thomas

これは私のためにそれを修正しました:右側のOpen maven projectsタブ。 Pomがまだ存在しない場合は追加し、タブの左上にある[更新]をクリックします。

2
ZoltanT

私は別のシナリオを考えましたが、それでもこの答えに着手しました。
複数のMavenプロジェクトを含むルートプロジェクトフォルダーをインポートしましたが、このプロジェクトで使用されているその他のものもあります。
IntelliJはJavaファイルを認識しましたが、Mavenの依存関係を解決しませんでした。

私は、各pomを右クリックして「Add as maven project」を実行することでこれを修正しました。

2
John Blackwell

最も簡単な方法は、プロジェクトをMavenプロジェクトとして直接追加することです。これを行うには、左側のプロジェクトエクスプローラーで、プロジェクトのPOMファイルを右クリックします。コンテキストメニューの下部にある「Mavenプロジェクトとして追加」というオプションが表示されます。これにより、プロジェクトが自動的にMavenプロジェクトに変換されます

0
Tester Man

私は以下の手順でこれと同じ問題を解決しました。

  1. ファイル>プロジェクトを閉じる

  2. プロジェクトをインポート

  3. システムファイルのポップアップからプロジェクトを選択してください

  4. 「外部モデルからプロジェクトをインポート」ラジオボタンをチェックしてMavenエントリを選択

  5. そして、いくつかのNextボタン(JDKを選択する、...)

その後、プロジェクトはMavenモジュールとしてインポートされます。

0
Walid Ammou