maven实战笔记1

maven实战笔记1

  1. pom.xml
<?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>net.blf2</groupId>
    <artifactId>testmvn</artifactId>
    <version>0.1</version>
    <name>CBHBDepository</name>
    <description>maven实战笔记1</description>
</project>
  • (1)modelVersion指定了pom版本,对于Maven2和Maven3来说,只能是4.0.0
  • (2)groupId,artifactId,version这三个元素定义了项目的坐标,groupId是组织名,一般是网站网址的反写,artifactId可以理解为项目名,version是版本号,maven中的jar,war,pom项目都是通过这三个元素唯一定义
  • (3)name元素和description元素不是必须的,但加上会让其他程序员更好的理解这个项目,知道更多的信息
  • (4)按照约定,项目主代码在src/main/java中,里面会包含一个net.blf2.testmvn的包,资源都在src/main/resources文件夹下,测试代码一般放在src/test/java中,此目录下也有相应的包net.blf2.testmvn,对应src/main/java下的源码。
  • (5)代码编写完成后,在项目根目录下运行 mvn clean compile命令,clean命令会删除target/,compile命令会编译项目主代码。
  • (6)mvn clean compile命令执行过程:clean:clean(删除target文件夹),resources:resources(拷贝资源,默认拷贝resources文件夹下的文件),compile:compile(编译),示例编译插件如下,放入下的里面
<plugin>
    <!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
        <source>1.8</source>
        <!-- 源代码使用的JDK版本 -->
        <target>1.8</target>
        <!-- 需要生成的目标class文件的编译版本 -->
        <encoding>UTF-8</encoding>
        <!-- 字符集编码 -->
        <skipTests>true</skipTests>
        <!-- 跳过测试 -->
        <verbose>true</verbose>
        <showWarnings>true</showWarnings>
        <fork>true</fork>
        <!-- 要使compilerVersion标签生效,还需要将fork设为true,用于明确表示编译版本配置的可用 -->
        <executable>
            <!-- path-to-javac -->
        </executable>
        <!-- 使用指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->
        <compilerVersion>1.3</compilerVersion>
        <!-- 指定插件将使用的编译器的版本 -->
        <meminitial>128m</meminitial>
        <!-- 编译器使用的初始内存 -->
        <maxmem>512m</maxmem>
        <!-- 编译器使用的最大内存 -->
        <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument>
        <!-- 这个选项用来传递编译器自身不包含但是却支持的参数选项 -->
    </configuration>
</plugin>
  • (7)pom文件中没有定义打包成哪个格式,运行mvn package的话,默认打jar包
  • (8)mvn clean install 是把打包好的jar包发布到本地maven仓库,install之前会先package,package之前会运行test
  • (9)打成的jar包是不能直接运行的,如果想让jar包可以执行,需要借助插件maven-shade-plugin,引入maven-shade-plugin,设置mainClass参数,即可用java -jar 名称.jar命令运行
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.1.1</version>
    <configuration>
        <!-- put your configurations here -->
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>
                    net.blf2.testmvn.TestMvn
                  </mainClass>
                </transformer>
              </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>
  • (10)使用mvn archetype:generate创建maven项目骨架,此命令为Maven3版本的命令,如果不指定具体版本的话,会下载最新稳定版
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值