暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mac 下 Maven 的配置和使用

java小小小小栈 2021-01-14
750



        Maven 是纯 java 开发的开源项目管理工具。进行依赖管理 (jar 包依赖管理) 和项目构建 (项目编译、打包、测试、部署)。此外还能分块开发,提高开发效率。


        Maven 下载。

    http://apache.org/,Project List 找到 Maven,左列表 Download -> Binary zip archive。

        解压 -> 改名 Maven -> 拖到 /library 目录下。


        Maven 环境变量。

        $ vim ~/.bash_profile,按 i 编辑。


export MAVEN_HOME=/Library/Maven
export PATH=$PATH:$MAVEN_HOME/bin
复制

        esc 退出编辑 -> :wq,保存并推出 vim。
  source ~/.bash_profile,使配置生效。
  $ mvn -v,测试配置生效。

  Maven 配置。打开 /Library/Maven/conf/settings.xml。



<!-- 本地仓库目录 -->
<localRepository>/Users/mac/Desktop/java/maven/repository</localRepository>


<!-- 阿里提供的公共仓库 -->
<mirrors>
<mirror>
<id>aliyun</id>
<!-- 中心仓库的 mirror(镜像) -->
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>


<!-- 配置 java jdk -->
<profiles>
<profile>
<id>myjdk</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>


</profiles>


<!-- 让增加的 profile生效 -->
<activeProfiles>
<activeProfile>myjdk</activeProfile>
</activeProfiles>


复制

        

        Maven 找依赖的顺序为本地仓库 -> 私服 -> 公共仓库 -> 中央仓库。

        https://mvnrepository.com,查找依赖信息。


        在 Idea 中关联 Maven。

        在 Preperences 和 File -> Other Setting -> Preferences For New Projects 里设置。


        Maven -> Importing -> 勾选Importing Maven Projects automatically,自动添加所依赖的包到项目。


        Maven 常用命令。

        $ mvn compile,编译。

        $ mvn clean,清理。

        $ mvn test,测试,注意遵循测试类命名规范。

        $ mvn package,打成 jar 包。

        $ mvn install,安装,把打成的 jar 包放到本地仓库。

        $ mvn -version,查看 maven 版本号。


        Maven 依赖包的 scope 标签表示生命周期。

        compile,缺省值,适用于所有阶段(测试,编译,运行,打包),会随着项目一起发布(被打包)。

        provided,类似compile,期望JDK、容器或使用者会提供这个依赖,如 servlet-api.jar。参与测试,编译,不会被打包。

        runtime,只在运行时使用,如 mysql-connector-java 驱动 jar,适用运行和测试阶段,会被一起发布。

        test,只在测试时使用,用于编译和运行测试代码,如 junit.jar,不会随项目发布。

        system,类似provided,但 Maven 不会在Repository 中查找它,要在本地磁盘目录中查找,参与编译,测试,打包,运行。


        新建普通 java 工程,手动创建文件夹标准如下。


        新建 Maven 的配置文件 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.baidu.day.text1</groupId>


<!-- 项目名称-->
  <artifactId>text1</artifactId>


<!-- 项目的版本 -->
<version>1.0-SNAPSHOT</version>


<!--
项目打包的类型
war:web项目
jar:工具类
pom:父工程
-->
<packaging>jar</packaging>


<!-- 和项目名称保持一致-->
  <name>text1</name>


<!-- 可以放一些自定义的属性,比如依赖版本号-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<!-- 当前项目所用的依赖坐标 -->
<dependencies>


<dependency>


<!-- 组织名-->
<groupId>junit</groupId>


<!-- 项目名称-->
<artifactId>junit</artifactId>


<!-- 版本号-->
<version>4.12</version>


<!--作用域 -->
<scope>test</scope>
</dependency>


</dependencies>


</project>


复制


        工程目录如下。

        注意文件夹名不要用 test,避免跟测试文件夹混淆。

        因为不是直接创建的 maven 工程,@Test 既需要依赖,也需要导包。


        然后$ mvn package,打成 jar 包。$ mvn install,把 jar 包放到本地仓库,稍后使用。

        control + L,可以清空 Idea 命令行。


        普通 java 工程使用自己的 jar 包。

        将 text1 复制一份成 text2,,在 Modules 里导入,稍作修改。



<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.baidu.day.text2</groupId>


<!-- 项目名称-->
<artifactId>text2</artifactId>


<!-- 项目的版本 -->
<version>1.0-SNAPSHOT</version>


<!--
项目打包的类型
war:web项目
jar:工具类
pom:父工程
-->
<packaging>jar</packaging>


<!-- 和项目名称保持一致-->
<name>text2</name>


<!-- 可以放一些自定义的属性,比如依赖版本号-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<!-- 当前项目所用的依赖坐标 -->
<dependencies>


<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>


<!-- 引入自己打的jar包-->
<dependency>
<groupId>com.baidu.day.text1</groupId>
<artifactId>text1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>


</dependencies>


</project>


复制


        工程目录。


        编译 Maven,这里虽然不能呼出 show 类并报红,但 Maven 是能正常运行的。


        Maven 工程使用自己的 jar 包。

        新建 text3 为普通 Maven 工程。代码和目录同 text2。双击右方的 compiler 编译后,可以正常呼出 类名和方法了。双击右方列表同命令行一样的功能。


        创建 Maven Web 工程。


        导入 tomcat 依赖的组件。



<?xml version="1.0" encoding="UTF-8"?>


<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>org.example</groupId>
<artifactId>text4</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>


<name>text4 Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<dependencies>


<!-- Servlet相关的依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>


<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>


<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>


<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 热部署 -->
<contextReloadable>true</contextReloadable>
<port>8080</port> <!-- 端口号 -->
<path>/</path> <!-- 发布的项目路径 -->
</configuration>
</plugin>
</plugins>
</build>


</project>


复制


        双击右方 tomcat 列表运行。注意这里不会自动弹出浏览器,要自己打开浏览器 http://localhost:8080/。如果 jsp 有更改,不需要再次运行,直接刷新网页就行。


文章转载自java小小小小栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论