【问题标题】:IntelliJ - Convert a Java project/module into a Maven project/moduleIntelliJ - 将 Java 项目/模块转换为 Maven 项目/模块
【发布时间】:2011-11-30 08:15:33
【问题描述】:

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

然后它询问我是否想从这个源创建一个新项目,我回答是。到目前为止,一切都很好。它为我创建了一个不错的 Java 小项目,由一个模块组成。

但是,我将这个项目引入 IntelliJ 的目的是将它变成一个 Maven 项目。我在任何地方都找不到任何可以让我这样做的选项!

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

【问题讨论】:

    标签: java maven intellij-idea pom.xml


    【解决方案1】:

    右击模块,选择“添加框架支持...”,勾选“Maven”技术。

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

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

    Pre-IntelliJ 13 这不会将项目转换为Maven Standard Directory Layout,13+ 它会。

    【讨论】:

    • 正是我想要的!是的,我的意思是添加默认的 maven2 “Central”存储库元素。但我可以自己添加,没什么大不了的。
    • 酷。但是您不必添加它;已经是默认了。
    • 如果我没有该选项会怎样?
    • 哪些“插件”?我有 2 个 maven 插件(IntelliJ 默认提供)。添加框架中仍然没有“Maven”选项
    • 很抱歉恢复了这篇旧帖子,但是有没有一种自动方法可以将 jsf 依赖项放入 pom 中? pom 被创建但它是空的,我想在 pom 中拥有一个 jsf 项目的所有正确依赖项。
    【解决方案2】:

    为那些从中受益的人提供视觉效果。

    右键单击项目名称(本例中为“test”)后,选择“添加框架支持”并选中“Maven”选项。

    【讨论】:

      【解决方案3】:
      1. 打开“Maven 项目”(右侧的选项卡)。
      2. 使用“添加 Maven 项目”
      3. 找到你的 pom.xml

      【讨论】:

      • 当我有一个父director git URL的时候很多子项目,子项目没有被识别为Maven。这个答案有帮助。为了清楚起见,此功能在 Maven 工具窗口中可用。
      • 这个答案帮助我将 Gradle 项目重新关联回 Maven。只需要在类似的 Gradle 菜单上取消链接(使用减号)。
      【解决方案4】:

      只需按照以下步骤操作:

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

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

      【讨论】:

        【解决方案5】:

        我想添加一个重要提示,即转换这样的项目可能会产生副作用,当你有一个更大的项目时,这些副作用会很明显。这是因为 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 重新记录内容根结构的混淆可能很重要

        【讨论】:

          【解决方案6】:

          我有一个不同的场景,但仍然得到了这个答案。
          我已经导入了我的根项目文件夹,其中包含多个 Maven 项目以及该项目中使用的一些其他内容。
          IntelliJ 识别了 Java 文件,但没有解析 Maven 依赖项。

          我通过右键单击每个 pom 然后“添加为 maven 项目”来解决此问题

          【讨论】:

            【解决方案7】:

            我通过以下步骤解决了同样的问题:

            1. 文件 > 关闭项目

            2. 导入项目

            3. 通过系统文件弹出窗口选择您的项目

            4. 选中“从外部模型导入项目”单选按钮并选择 Maven 条目

            5. 还有一些 Next 按钮(选择 JDK,...)

            然后项目将作为 Maven 模块导入。

            【讨论】:

              【解决方案8】:

              这为我解决了这个问题:打开右侧的 maven 项目选项卡。如果 pom 尚未出现,请添加,然后单击选项卡左上角的刷新。

              【讨论】:

                【解决方案9】:

                最简单的方法是直接将项目添加为 Maven 项目。为此,在左侧的项目资源管理器中,右键单击项目的 POM 文件,在上下文菜单的底部,您将看到一个名为“添加为 Maven 项目”的选项,单击它。这会自动将项目转换为 Maven 项目

                【讨论】:

                  【解决方案10】:

                  Intellij IDEA 2020.2.3 版本更新

                  Settings -&gt; Build,Execution,Deployment -&gt; Build Tools -&gt; Maven -&gt; Importing 并点击“为多模块 Maven 项目创建模块组”。

                  然后应用,您可以在“添加框架支持...”中看到该选项

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-02-06
                    • 1970-01-01
                    • 1970-01-01
                    • 2014-09-14
                    • 2016-06-12
                    • 2012-06-20
                    相关资源
                    最近更新 更多