Start Maven by Using intellij idea

本文介绍如何下载并配置IntelliJ IDEA、Maven和JDK,通过设置环境变量启动IDE,并使用Maven创建项目的基本步骤。文中还解释了pom.xml文件中artifactId与groupId的概念。

1. download "intellij idea", maven and JDK.

2. Before run the interllij idea, "export" the M2_HOME to indicat the installed maven path and JAVA_HOME to specify the installed jdk path.

3. start the "interllij idea" by using "nohup ./bin/idea.sh &", close the termial now.

4. pom.xml

artifactId means the jar filename

groupID means the "package" name.

package org.apache.hadoop.examples;

import java.io.IOException;
import java.util.StringTokenizer;

5. Select the archetype: maven-archetype-quickstart not using default maven-archetype.


C:\Users\26945\.jdks\ms-17.0.15\bin\java.exe -Dmaven.multiModuleProjectDirectory=C:\Users\26945\Desktop\java\xuesheng -Djansi.passthrough=true "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\lib\idea_rt.jar=62850:C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\plugins\maven\lib\maven3\boot\plexus-classworlds-2.7.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\plugins\maven\lib\maven3\boot\plexus-classworlds.license" org.codehaus.classworlds.Launcher -Didea.version=2024.1.4 tomcat9:run [INFO] Scanning for projects... [ERROR] [ERROR] Some problems were encountered while processing the POMs: [FATAL] Non-parseable POM C:\Users\26945\Desktop\java\xuesheng\pom.xml: Duplicated tag: 'plugins' (position: START_TAG seen ...</plugins>\n <plugins>... @104:18) @ line 104, column 18 @ [ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project (C:\Users\26945\Desktop\java\xuesheng\pom.xml) has 1 error [ERROR] Non-parseable POM C:\Users\26945\Desktop\java\xuesheng\pom.xml: Duplicated tag: 'plugins' (position: START_TAG seen ...</plugins>\n <plugins>... @104:18) @ line 104, column 18 -> [Help 2] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/ModelParseException 进程已结束,退出代码为 1
06-22
<think>我们遇到了一个Maven构建错误,错误信息指出在解析pom.xml文件时发现了重复的`<plugins>`标签。具体错误信息如下:```[FATAL]Non-parseablePOM...\pom.xml:Duplicatedtag:'plugins'(position:START_TAGseen...</plugins>\n<plugins>...@104:18)@line104,column18```这意味着在pom.xml文件的第104行第18列,Maven解析器遇到了重复的`<plugins>`开始标签。这通常是由于在同一个`<build>`或`<pluginManagement>`部分中多次使用了`<plugins>`标签导致的。解决方案:1.检查pom.xml文件,找到重复的`<plugins>`标签位置。2.将多个`<plugins>`标签合并为一个,将所有插件声明放在同一个`<plugins>`标签内。下面是一个示例说明:错误的pom.xml结构:```xml<build><plugins><plugin>...</plugin></plugins><!--其他配置--><plugins><!--这里重复了plugins标签--><plugin>...</plugin></plugins></build>```正确的pom.xml结构:```xml<build><plugins><plugin>...</plugin><!--第一个插件--><plugin>...</plugin><!--第二个插件--><!--将所有插件放在同一个plugins标签内--></plugins></build>```因此,我们需要打开pom.xml文件,定位到第104行附近(错误提示的行号),检查是否有重复的`<plugins>`标签,然后进行合并。如果问题仍然存在,我们可以提供更具体的pom.xml文件片段进行分析。由于我们无法直接访问您的pom.xml文件,以下是一个修复后的示例pom.xml文件片段,供您参考:修复前(错误示例):```xml<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.10.1</version><configuration><source>11</source><target>11</target></configuration></plugin></plugins><resources><resource><directory>src/main/resources</directory></resource></resources><plugins><!--这里重复了plugins标签,导致错误--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat9-maven-plugin</artifactId><version>3.0-r1756463</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build>```修复后(正确示例):```xml<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.10.1</version><configuration><source>11</source><target>11</target></configuration></plugin><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat9-maven-plugin</artifactId><version>3.0-r1756463</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins><resources><resource><directory>src/main/resources</directory></resource></resources></build>```注意:在Maven的pom.xml中,`<build>`标签下的子标签有固定的顺序。根据Maven官方文档,子标签的顺序必须是:-`sourceDirectory`-`scriptSourceDirectory`-`testSourceDirectory`-`outputDirectory`-`testOutputDirectory`-`extensions`-`defaultGoal`-`resources`-`testResources`-`directory`-`finalName`-`filters`-`pluginManagement`-`plugins`因此,`<plugins>`标签必须在`<resources>`标签之前。如果顺序错误,也可能导致解析问题。所以,如果您的pom.xml中`<plugins>`和`<resources>`等标签的顺序不正确,需要调整顺序。正确的顺序示例:```xml<build><resources><!--资源目录配置--></resources><plugins><!--插件配置--></plugins></build>```但实际上,根据Maven规范,`<plugins>`应该放在`<resources>`之前?不对,我们查阅MavenPOM参考:https://maven.apache.org/pom.html#Build在<build>元素中,子元素的顺序是:-directories(包括sourceDirectory,scriptSourceDirectory,testSourceDirectory,outputDirectory,testOutputDirectory)-extensions-resources-testResources-pluginManagement-plugins所以,正确的顺序应该是:<resources>在<plugins>之前。但根据实际经验,Maven对顺序的要求并不严格,但为了确保兼容性,最好按照标准顺序排列。然而,我们遇到的错误是重复的`<plugins>`标签,所以主要问题还是重复的标签。步骤总结:1.打开pom.xml文件,找到第104行(根据错误提示)附近。2.检查是否有多个`<plugins>`标签。3.将所有插件配置合并到一个`<plugins>`标签内。4.检查其他子标签的顺序是否符合Maven规范(虽然顺序问题通常不会导致解析失败,但最好遵循规范)。如果合并后问题解决,则构建可以继续。如果问题仍然存在,请检查是否有其他重复标签或XML格式错误(如标签未关闭等)。由于错误信息明确指出了是重复的`<plugins>`标签,所以按照上述步骤应该能解决问题。注意:在IDE中,通常XML文件会有语法高亮和错误提示,可以借助IDE的帮助来定位问题。最后,提供一个修复后的完整pom.xml示例(仅构建部分):</think>### Maven "Duplicated tag: 'plugins'" 错误解决方案 您遇到的错误是 Maven 在解析 pom.xml 时发现重复的 `<plugins>` 标签: ``` [FATAL] Non-parseable POM: Duplicated tag: 'plugins' (position: START_TAG seen ...</plugins>\n <plugins>... @104:18) ``` ### 错误原因分析 1. **重复的插件声明**: - 在同一个 `<build>` 或 `<profile>` 块中声明了多个 `<plugins>` 标签 - Maven 要求每个构建块只能有一个 `<plugins>` 标签 2. **标签嵌套错误**: - `<pluginManagement>` 和 `<plugins>` 标签嵌套错误 - XML 结构不符合 Maven 规范 3. **格式问题**: - 注释或空白字符导致标签位置错误 - 标签未正确关闭 ### 完整解决方案 #### 步骤1:修复重复的 plugins 标签 **错误的 pom.xml 结构**: ```xml <build> <plugins> <!-- 插件1配置 --> </plugins> <resources> <!-- 资源目录配置 --> </resources> <plugins> <!-- 重复的plugins标签 --> <!-- 插件2配置 --> </plugins> </build> ``` **正确的 pom.xml 结构**: ```xml <build> <!-- 所有插件放在一个plugins标签内 --> <plugins> <!-- 插件1配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> <!-- 插件2配置 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat9-maven-plugin</artifactId> <version>3.0-r1756463</version> <configuration> <port>8080</port> <path>/</path> </configuration> </plugin> </plugins> <resources> <!-- 资源目录配置 --> </resources> </build> ``` #### 步骤2:正确使用 pluginManagement 如果你需要管理多个模块的插件版本: ```xml <build> <!-- 使用 pluginManagement 统一管理插件版本 --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat9-maven-plugin</artifactId> <version>3.0-r1756463</version> </plugin> </plugins> </pluginManagement> <!-- 实际使用的插件 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat9-maven-plugin</artifactId> </plugin> </plugins> </build> ``` #### 步骤3:完整的 pom.xml 修复示例 ```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.example</groupId> <artifactId>student-management</artifactId> <version>1.0.0</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <!-- Spring 依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.20</version> </dependency> <!-- 数据库依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> </dependencies> <build> <finalName>student-management</finalName> <!-- 资源目录配置 --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <!-- 所有插件放在一个plugins标签内 --> <plugins> <!-- 编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <source>11</source> <target>11</target> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- Tomcat 插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat9-maven-plugin</artifactId> <version>3.0-r1756463</version> <configuration> <port>8080</port> <path>/</path> <update>true</update> <server>tomcat9</server> </configuration> </plugin> <!-- 打包插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> <configuration> <warSourceDirectory>src/main/webapp</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> <webResources> <resource> <directory>src/main/resources</directory> <targetPath>WEB-INF/classes</targetPath> </resource> </webResources> </configuration> </plugin> </plugins> </build> </project> ``` ### 验证步骤 1. **检查 pom.xml 结构**: - 确保只有一个 `<plugins>` 标签在 `<build>` 内 - 使用 XML 验证工具检查格式:`mvn help:effective-pom` 2. **运行 Maven 命令**: ```bash mvn clean package ``` 3. **启动应用**: ```bash mvn tomcat9:run ``` ### XML 结构验证工具 如果你不确定 XML 结构是否正确,可以使用在线验证工具: 1. [Maven POM XSD 验证器](https://www.xmlvalidation.com/) 2. IntelliJ 内置的 XML 验证: - 右键点击 pom.xml → Validate ### 常见错误模式及修复 | 错误模式 | 修复方案 | |---------|---------| | 多个 `<plugins>` 标签 | 合并所有插件到一个 `<plugins>` 块 | | `<plugins>` 在 `<pluginManagement>` 外重复 | 使用 `<pluginManagement>` 管理版本 | | 插件声明在 `<resources>` 之后 | 按标准顺序排列标签 | | 标签未正确关闭 | 使用 IDE 的 XML 格式化功能 | ### Maven POM 标签标准顺序 根据 Maven 规范,`<build>` 块内标签的顺序应为: ```xml <build> <defaultGoal>...</defaultGoal> <directory>...</directory> <finalName>...</finalName> <filters>...</filters> <resources>...</resources> <testResources>...</testResources> <pluginManagement>...</pluginManagement> <plugins>...</plugins> <!-- 只能有一个 --> </build> ``` ### 总结 此错误的核心原因是 pom.xml 中存在重复的 `<plugins>` 标签。解决方案是: 1. 将所有插件声明合并到一个 `<plugins>` 块内 2. 确保标签按照 Maven 规范的正确顺序排列 3. 使用 `<pluginManagement>` 统一管理多模块项目的插件版本 通过修复 pom.xml 结构,您的 Maven 项目应该能够正确构建和运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值