美文网首页
Maven参考手册(未完待续)

Maven参考手册(未完待续)

作者: 1angxi | 来源:发表于2015-12-31 17:20 被阅读341次

最近都在使用maven来开发系统,关于maven以前了解的不多,现在统一整理成一个使用手册。

1.setting.xml

1.1概要

setting.xml是maven的配置文件,其基本结构如下所示:

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
    http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository/>
      <interactiveMode/>
      <usePluginRegistry/>
      <offline/>
      <pluginGroups/>
      <servers/>
      <mirrors/>
      <proxies/>
      <profiles/>
      <activeProfiles/>
    </settings>

setting.xml文件位于:

$M2_HOME/conf/settings.xml
${user.home}/.m2/settings.xml

两个配置文件都能够发挥作用,当然,用户专属的settings.xml有优先权。

显然,settings.xml能够定义maven的一些行为。

一般来说,公司内部会有公共的settings.xml,只需要copy一份到~/.m2文件夹下就能发挥作用。

1.2各项配置的作用

  <interactiveMode>true</interactiveMode>
  <usePluginRegistry>false</usePluginRegistry>
  <offline>false</offline>
  • localRepository:这是本地仓库的地址。默认是~/.m2路径。
  • interactiveMode:默认为true,这决定了用户输入时的交互形式。
  • usePluginRegistry:如果需要通过配置管理插件,配置路径:${user.home}/.m2/plugin-registry.xml。默认为false,即不配置。
  • offline:当需要离线环境时,可以将此配置文件配置为false。(比如说公司网络挂了)
  <pluginGroups>
    <pluginGroup>org.mortbay.jetty</pluginGroup>
  </pluginGroups>

pluginGroups用来配置mvn插件,比如说上面的code,会安装jetty插件。运行方法为:

mvn jetty:run

1.3配置私服

setting.xml最重要的一个功能就是能够指定私服私服的重要意义在于,可以在中心maven服务器任意发布jar包,不用担心泄密。

  <servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <password>my_password</password>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>
  • id username password:根据私服的设置来配置id 用户名和密码。
  • privateKey, passphrase:如果私服位于外网,那么配置公钥登录就是必须的。更详细的内容参考:http://maven.apache.org/guides/mini/guide-encryption.html
  • filePermissions, directoryPermissions: 下载下来的文件和目录权限控制,一般默认就好。
  <profiles>
    <profile>
      ...
      <repositories>
        <repository>
          <id>codehausSnapshots</id>
          <name>Codehaus Snapshots</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <url>http://snapshots.maven.codehaus.org/maven2</url>
          <layout>default</layout>
        </repository>
      </repositories>
      <pluginRepositories>
        ...
      </pluginRepositories>
      ...
    </profile>
  </profiles>
  • releases, snapshots: 控制当releases, snapshots,需要只让snapshots下载时有用。
  • enabled:可用性
  • updatePolicy:更新政策
  • checksumPolicy:校验政策
  • layout:默认就好

2.pom.xml

2.1 概要

pom的意思是Project Object Model,是用来配置项目环境的文件。

所有的参数如下所示:

<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>
 
  <!-- The Basics -->
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>...</packaging>
  <dependencies>...</dependencies>
  <parent>...</parent>
  <dependencyManagement>...</dependencyManagement>
  <modules>...</modules>
  <properties>...</properties>
 
  <!-- Build Settings -->
  <build>...</build>
  <reporting>...</reporting>
 
  <!-- More Project Information -->
  <name>...</name>
  <description>...</description>
  <url>...</url>
  <inceptionYear>...</inceptionYear>
  <licenses>...</licenses>
  <organization>...</organization>
  <developers>...</developers>
  <contributors>...</contributors>
 
  <!-- Environment Settings -->
  <issueManagement>...</issueManagement>
  <ciManagement>...</ciManagement>
  <mailingLists>...</mailingLists>
  <scm>...</scm>
  <prerequisites>...</prerequisites>
  <repositories>...</repositories>
  <pluginRepositories>...</pluginRepositories>
  <distributionManagement>...</distributionManagement>
  <profiles>...</profiles>
</project>

2.2基础

<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.codehaus.mojo</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

groupId:包名,与此同时,项目会在mvn install之后放入~/m2/repository/xxx对应的路径下。
artifactId:应用名
version:版本号

参考文献

maven官方文档:setting.xml
maven官方文档:pom.xml

相关文章

网友评论

      本文标题:Maven参考手册(未完待续)

      本文链接:https://www.haomeiwen.com/subject/tftwhttx.html