Mavent——学Java不会Maven,怎么行archetypeCatalog=internal

Maven简介

Ubuntu安装Maven

Maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的

Maven的优点是:节省空间(将所有需要的jar包,全部存到本地仓库)

Maven中的文件,我们只需要关注settings.xml文件。

配置本地仓库的位置:

1、Maven的常用命令

clean 清除已经编译好的文件

Compile 编译了主目录的文件
Test 编译并运行了test目录的代码
Package 打包
Install 就是把项目发布到本地仓库

tomcat:run 一键启动(当配置了使用Tomcat7插件的时候,使用tomcat7:run启动)

2、新建项目

猛击这里

环境变量注意事项:

目录结构

3、导入包

为了避免:

已经出现了,解决:ex

4、引入插件

<build>
    <finalName>HelloWorld</finalName>
    <!-- 配置了很多插件 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <!--使用tomcat7:run运行-->
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
        </plugin>
    </plugins>
</build>

5、依赖传递

只添加了一个struts2-core依赖,发现项目中出现了很多jar,这种情况 叫 依赖传递

6、解决依赖冲突

1、第一声明优先原则

<dependencies>

    <!--由于引入了两个包,其中都依赖Spring-bean这个包。-->
    <!--1、 第一声明优先原则:只引入第一声明的bean包(默认)-->

    <!-- spring-beans-4.2.4 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

    <!-- spring-beans-3.0.5 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.3.24</version>
    </dependency>

</dependencies>

2、路径近者优先原则

<dependencies>

    <!-- spring-beans-4.2.4 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

    <!-- spring-beans-3.0.5 -->
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.3.24</version>
    </dependency>

    <!--2、路径近者优先原则:优先引入自己添加的bean-->

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>
    
</dependencies>

3、排除原则

<dependencies>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.3.24</version>

        <exclusions>
            <!--3、 排除原则:将org.springframework所依赖的bean包引入,将自己排除-->
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
            </exclusion>

        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.2.4.RELEASE</version>
    </dependency>

</dependencies>

7、使用Maven搭建SSH项目

8、模块拆分

IDEA报错-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.[ERROR] Maven execution terminated abnormally (exit code 1)

一可能是jdk版本不匹配,二是在maven的runner选项上设置maven vm options:-Dmaven.multiModuleProjectDirectory=$M2_HOME

 

 

原文地址:https://www.cnblogs.com/x54256/p/8548502.html