gpt4 book ai didi

maven - 如何在 Intellij IDEA 11 中构建 maven 导入项目?

转载 作者:行者123 更新时间:2023-12-04 19:11:50 24 4
gpt4 key购买 nike

我通过导入 maven 项目创建了一个新的 IntelliJ 项目。效果很好:
enter image description here

我可以从 Maven 项目 Pane (在 IDE 屏幕的左侧)执行 Maven 目标。例如,我可以使用 compile 目标很好地编译项目。

现在我想使用 从 UI 构建项目。建立|制作项目选项。但是,它不起作用。它提示缺少应用程序包,就好像它没有看到依赖项一样。这些依赖项在各自的 pom.xml 文件中定义,但从 IDE 制作项目似乎忽略了它。

我必须做些什么才能让它发挥作用?

编辑

好的,我删除了 .m2 从我家的目录,并从 Maven 项目弹出窗口开始编译目标。我可以在控制台 Pane 中看到 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 中心没有问题。

编辑2

请注意:
enter image description here
注意问题 - 从 Maven 导入了两个模块 - 常见 核心 .他们的 Maven Artifact ID 是 公共(public) 核心 分别。 IntelliJ 似乎混淆了 Artifact ID 和模块名称,因为:
  • 项目弹出显示模块名称,后跟括号中的相应 maven Artifact ID。
  • 在项目设置对话框中,模块仅由各自的 Maven Artifact ID 给出。
  • 但在模块依赖项中,它仅列出模块名称。

  • 核心 模块(maven Artifact ID 核心 )应该看到依赖关系 常见 模块(maven Artifact ID commons ),但它没有,这就是问题所在。

    编辑3

    这是最顶层的 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>

    这是通用模块的一个:
    <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>

    这是核心模块的一个:
    <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 感到困惑的方式发生了变化。

    最佳答案

    查看屏幕截图,您似乎没有离线工作,这是导致此问题的最常见原因。

  • 尝试从 Maven 项目弹出窗口下载源代码和文档(它是左侧的第三个图标)。这通常具有唤醒它并导致下载的效果。
  • 使用运行时配置执行手动 Maven 构建。选择编辑配置 | Maven 然后确保您的工作目录是您的项目根目录,并选择“干净包”的目标。这将强制 Intellij 直接通过 Maven 重建,这可能会唤醒内部后台构建过程。
  • 检查您的设置并确保 Intellj 的 Maven 已从 POM 正确读取存储库信息并能够找到 Maven Central。您的本地 settings.xml 可能存在阻止下载的问题。
  • 您还可以删除 .idea 和 .iml 文件以强制重新导入项目。
  • 重启 Intellij 并期待最好的...
  • 作为最后的手段,通过 File | 使你的缓存失效。使缓存无效。这可能会减慢您的开发速度,直到它们通过使用进行重建。

  • 编辑以涵盖更新的问题

    看来您的 POM 文件有点乱。他们不遵循标准 Maven directory layout因此,Intellij 可能会混淆您的目录名称和内部 artifactId 条目。通常父 POM(包含模块)被放置在项目的根目录中,模块在下面形成一个目录层次结构。

    通过一些广泛的设置配置,您可以强制 Intellij 使用现有结构,但更好的解决方案是重命名目录以匹配 artifactId 并移动模块,以便它们形成 Maven react 器项目。

    根据评论进一步编辑

    似乎是 Intellij 项目同步。删除 .idea 目录和 .iml 文件就可以了。我已经相应地更新了列表。

    关于maven - 如何在 Intellij IDEA 11 中构建 maven 导入项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14214588/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com