maven使用经验

按照顺序来做,可以入门maven。

1. 下载安装maven

提到下载外国的软件,直接搜镜像资源就得了,下载安装后记得配置环境变量。

2. maven全局配置和项目配置

setting.xml
安装maven的文件夹有conf文件夹,里面有setting.xml文件。这个文件是用来配置maven全局属性的。
全局属性主要作用于:

本地仓库地址
私有仓库地址
远程仓库地址

一般在setting.xml文件中需要更改一下两个内容:

本地仓库地址
远程仓库地址

本地仓库更改为一个自己喜欢的地方,我放在了D:maventools中。

<!--上面的这些是默认地址不用管-->
 <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->


  <!--这里是我自己添加的本地仓库地址-->
  <localRepository>D:\maventools\repository</localRepository>

远程仓库更改为阿里的国内镜像。

<mirrors>

	<!--这里是默认注释掉的,不用管-->
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	 



	<!--添加上此mirror节点-->
	<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
	</mirror>

  </mirrors>

3. 用maven构建项目

步骤:

  1. cd到你向创建maven工程的目录下
  2. 执行maven创建项目工程的脚手架
mvn archetype:generate -DgroupId=这里填你的类的所属者 -DartifactId=这里填你的工程的名称 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

eg:
mvn archetype:generate -DgroupId=wat -DartifactId=maven-test -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

执行完eg中的命令后,会创建出来mavent-test工程
工程下有
src和pom.xml
src中有main/java/wat/App.java

可以看到wat作为包的名字用了。
而maven-test作为工程名称用了。

4. 项目配置pom.xml

如果你用maven创建了一个项目,那么就会发现项目中有src文件夹和pom.xml配置文件这两个内容。这里的pom是用来配置maven的项目内属性的。

  1. 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/maven-v4_0_0.xsd">

    <!--声明项目描述符遵循哪一个 POM 模型版本,上面的 xsd 规范定义了这个版本,默认就行,不需要修改,不可删除-->
    <modelVersion>4.0.0</modelVersion>

    <!--团体唯一标识符-->
    <groupId>com.nasus</groupId>

    <!--项目唯一标识符定位这个包-->
    <artifactId>maven-test</artifactId>

    <!--打包类型-->
    <packaging>jar</packaging>

    <!--打包版本-->
    <version>1.0-SNAPSHOT</version>

    <!--包名-->
    <name>maven-test</name>

    <!--不用管,删掉也行-->
    <url>http://maven.apache.org</url>

    <!--项目需要依赖的 jar 包-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

  
</project>
  1. 向dependencies节点之前加上项目属性配置信息,用来指定编译的信息,一般这里面的内容不需要更改(我更改成了自己的版本,还报错了)
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>wat</groupId>
  <artifactId>maven-test</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>maven-test</name>
  <url>http://maven.apache.org</url>

  <!--项目属性,在 <dependencies> 前加-->
    <properties>
        <!-- JDK编译版本 -->
        <java.version>1.8</java.version>
        <!-- 项目编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- JDK编译版本 -->
        <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>



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


</project>
  1. 加入build配置信息,要不然后续运行工程的时候会找不到主类
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>wat</groupId>
  <artifactId>maven-test</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>maven-test</name>
  <url>http://maven.apache.org</url>

  <!--项目属性,在 <dependencies> 前加-->
    <properties>
        <!-- JDK编译版本 -->
        <java.version>1.8</java.version>
        <!-- 项目编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- JDK编译版本 -->
        <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>


    <!--  寻找主类的配置  -->
     <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>wat.App</mainClass>  <!-- 将这里面的内容设置为目录中java下的A.B.class -->>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


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


</project>

配置完成

5. 运行工程

这里操作的是先打包,再运行.jar

  1. 命令行中cd到maven-test目录。
  2. mvn clean ————清除原先不需要的目标文件夹的垃圾打包文件
  3. mvn package —————将工程打包
  4. cd target——————切换到target文件夹中
  5. java -jar xxx.jar ——————执行.jar文件
  6. 得到输出

还可以在maven-test目录下使用

mvn install

将打包文件转移到自己的本地仓库。

至此,maven的基础开发完结。

单元测试需要继续看看。。。。


2021.4.14

更新pluginmanagement 和 plugin的区别

pluginmanagement 标签内部包含的内容只能被继承使用,而不会在maven编译的时候直接使用。
plugin 标签内部的内容则是maven会在工作的时候使用的真正内容,所以,通常我们在pluginmanagement中定义好插件使用的时候的各种基本信息之后,在plugin标签中通过指定已经定义的插件的groupID和artifactID来使该插件生效!!!

还有一个标签 finalName 用来指定生成的最终结果的名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值