Maven总结

来源:互联网 发布:吕丽萍反对同性恋知乎 编辑:程序博客网 时间:2024/06/05 18:21

POM.xml是Maven的核心,记录项目主要的配置信息。主要的配置项目有:

根元素下的第一个子元素modelVersion指定了当前POM模型的版本,对于Maven2及Maven 3来说,它只能是4.0.0。
这段代码中最重要的是groupId,artifactId和version三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。
groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,譬如你在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。本书中所有的代码都基于groupId com.juvenxu.mvnbook。
artifactId定义了当前Maven项目在组中唯一的ID,我们为这个Hello World项目定义artifactId为hello-world,本书其他章节代码会被分配其他的artifactId。而在前面的groupId为com.googlecode.myapp的例子中,你可能会为不同的子项目(模块)分配artifactId,如:myapp-util、myapp-domain、myapp-web等等。

顾名思义,version指定了Hello World项目当前的版本——1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0、1.1-SNAPSHOT、1.1、2.0等等。本书的6.5小节会详细介绍SNAPSHOT,第13章介绍如何使用Maven管理项目版本的升级发布。
最后一个name元素声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但我还是推荐为每个POM声明name,以方便信息交流。

样例如下:

<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>com.juvenxu.mvnbook</groupId>   <artifactId>hello-world</artifactId>   <version>1.0-SNAPSHOT</version>    <name>Maven Hello World Project</name></project>

编译命令: mvn clean compile

添加Dependency:

<dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>      <scope>test</scope>    </dependency>  </dependencies>
关于类库的dependency的信息可以从:http://mvnrepository.com/  进行查询

scope这里为test,表示这里引入的依赖只能在test中被引用,不能被引入到业务代码中。缺省的值为compile.

运行测试: mvn clean test

打包命令: mvn clean package

安装命令:mvn clean install  打好的包复制到当前系统的respository里面去,以备其他的Maven项目使用

增加Shade Plugin给build下,提供可执行的jar:

<plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-shade-plugin</artifactId>  <version>2.0</version>  <executions>     <execution>        <phase>package</phase>        <goals>           <goal>shade</goal>        </goals>        <configuration>                    <transformers>                       <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">                           <mainClass>com.fish.test_app.App</mainClass>                       </transformer>                    </transformers>                  </configuration>     </execution>       </executions>  </plugin>

创建项目的骨架: mvn archetype:generate  (必须在mvn3以上的版本)

在Eclipse和NetBeans对Maven都提供了良好的支持,可以直接导入Maven的项目。



原创粉丝点击