IntelliJ - 将Java项目/模块转换为Maven项目/模块

Nei*_*aft 393 java intellij-idea pom.xml maven

我有一个关于Bitbucket的项目.只提交了来源.为了将项目检索到新机器上,我在IntelliJ中使用了Version Control> Checkout from Version Control.

然后询问我是否要从此源创建一个新项目,我回复是.到现在为止还挺好.它为我创建了一个很好的小Java项目,由一个模块组成.

但是,我将此项目纳入IntelliJ的目标是将其转变为Maven项目.我无法在任何地方找到任何可以让我这样做的选项!

有没有办法让IntelliJ为我生成一个基本的空pom.xml,具有名称和artifactId以及存储库?或者,有没有办法将项目作为Maven项目导入?(每当我尝试从现有源创建项目时,它只给我一个Java项目的选项.)

Dav*_*ton 750

右键单击该模块,选择"添加框架支持...",然后选中"Maven"技术.

(这也会创建一个pom.xml供您修改的.)

如果您的意思是添加源存储库元素,我认为您需要手动执行此操作 - 不确定.

在IntelliJ 13之前,这不会将项目转换为Maven标准目录布局,它将会是13+.

  • 如果我没有这个选项会怎么样? (39认同)
  • 正是我想要的!是的,我的意思是添加默认的maven2“中央”存储库元素。但是我可以自己补充一点,没什么大不了的。 (3认同)
  • 哪个"插件"?我有2个maven插头(默认使用IntelliJ).添加框架中仍然没有"Maven"选项 (2认同)

Crt*_*Crt 73

对于那些从中受益的人的视觉效果.

在此输入图像描述

右键单击项目名称(在此示例中为"test")后,选择"Add framework support"并选中"Maven"选项.


Faz*_*zoM 30

  1. 打开'Maven项目'(右侧标签).
  2. 使用'添加Maven项目'
  3. 找到你的pom.xml


Tho*_*mas 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>
Run Code Online (Sandbox Code Playgroud)

编辑2019:

  • 添加了递归资源扫描
  • 添加了目录规范,这对于避免IDEA混淆内容根结构可能很重要


Ind*_*our 6

只需按照以下步骤操作:

  1. 右键单击任何模块 pox.xml,然后选择“添加为 Maven 项目”

在此处输入图片说明

  1. 接下来要对其进行更改,转到 maven 选项卡,您将看到包含所有可以使用的 maven 目标的项目:

在此处输入图片说明