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


398

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

次に、このソースから新しいプロジェクトを作成するかどうかをたずねられ、「はい」と応答します。ここまでは順調ですね。それは私のために素敵な小さなJavaプロジェクトを作成します。

ただし、このプロジェクトをIntelliJに導入する際の私の目標は、このプロジェクトをMavenプロジェクトに変えることでした。これを可能にするオプションはどこにもありません!

IntelliJに名前とアーティファクトIDとリポジトリを含む基本的な空のpom.xmlを生成させる方法はありますか?または、そもそもプロジェクトをMavenプロジェクトとしてインポートする方法はありますか?(既存のソースからプロジェクトを作成しようとすると、Javaプロジェクトのオプションしか表示されません。)

回答:


760

モジュールを右クリックし、「フレームワークサポートの追加...」を選択して、「Maven」テクノロジーを確認します。

(これにより、pom.xml変更用のも作成されます。)

ソースリポジトリの要素を追加するつもりなら、手動で行う必要があると思いますが、よくわかりません。

IntelliJ 13より前のバージョンでは、プロジェクトはMaven標準ディレクトリレイアウトに変換されません。


3
まさに私が探していたもの!ええ、私はデフォルトのmaven2 "Central"リポジトリー要素を追加することを意味しました。しかし、私はそれを自分で追加することができます。
Neil Traft、2011年

1
涼しい。しかし、それを追加する必要はありません。それはすでにデフォルトです。
Dave Newton、

46
そのオプションがない場合はどうなりますか?

2
どの「プラグイン」?私は2つのMavenプラグを持っています(IntelliJでデフォルトになりました)。フレームワークの追加に「Maven」オプションはまだありません
Nick

1
この古い投稿を復活させて申し訳ありませんが、jsfの依存関係をpomに自動的に入れる方法はありますか?pomは作成されますが、空です。pom内にjsfプロジェクトのすべての適切な依存関係が必要です。
MrSir 2017年

76

それから利益を得る人のためのビジュアル。

ここに画像の説明を入力してください

プロジェクト名(この例では「test」)を右クリックした後、「フレームワークサポートの追加」を選択し、「Maven」オプションをチェックします。


どうもありがとうございました..
スマックチェリー

31
  1. 「Mavenプロジェクト」を開きます(右側のタブ)。
  2. 「Add Maven Projects」を使用します
  3. pom.xmlを見つける

1
多くのサブプロジェクトがあるときに親ディレクターのgit URLがあったときに、サブプロジェクトがMavenとして認識されませんでした。この答えは役に立ちました。明確にするために、この機能はMavenツールウィンドウで使用できます。
シルベスター

この回答は、Gradleプロジェクトを再びMavenに関連付けるのに役立ちました。同様のGradleメニューでリンクを解除(マイナス記号を使用)するだけです。
vphilipnyc

6

このようなプロジェクトを変換すると、より大きなプロジェクトがある場合に顕著になる副作用が生じる可能性があるという重要なヒントを追加したいと思います。これは、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>
    <directory>${project.basedir}/target</directory>
    <outputDirectory>${project.build.directory}/classes</outputDirectory>
    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <testSourceDirectory> ${project.basedir}/src/test/java</testSourceDirectory>

    <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>

2019を編集:

  • 再帰的なリソーススキャンを追加
  • IDEAがコンテンツのルート構造を書き直すことの混乱を避けるために重要かもしれないディレクトリ仕様を追加しました

3

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

各pomを右クリックして「Mavenプロジェクトとして追加」を実行することでこれを修正しました


3

以下の手順を実行して、この同じ問題を解決しました。

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

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

  3. システムファイルポップアップからプロジェクトを選択します

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

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

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


2

これで解決しました:右側の[Mavenプロジェクト]タブを開きます。まだ存在しない場合はpomを追加し、タブの左上にある[更新]をクリックします。


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.