maven实战笔记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>
< groupId> org.apache.maven.plugins</ groupId>
< artifactId> maven-compiler-plugin</ artifactId>
< version> 3.1</ version>
< configuration>
< source> 1.8</ source>
< target> 1.8</ target>
< encoding> UTF-8</ encoding>
< skipTests> true</ skipTests>
< verbose> true</ verbose>
< showWarnings> true</ showWarnings>
< fork> true</ fork>
< executable>
</ 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>
</ 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版本的命令,如果不指定具体版本的话,会下载最新稳定版