あまり知られていないラベルMavenの解説

Mavenは管理、ビルド、文書、レポート、依存性、SCMS、出版、配布方法を支援するために提供するプロジェクトを構築し、管理するためのツールです。あなたは簡単そうにコード、依存関係の管理、バイナリライブラリの管理とをコンパイルすることができます。
プロセスに利益をもたらすMavenプロジェクトは、自動化、効率的かつ強力な拡張性、標準化することができる
使用の達人自体もコード検査報告書を取得することができ、そのプラグインは、ユニットテストカバレッジ、その上に連続的な統合を実現して。

localRepository

デフォルトで設定されていない場合は、他の言葉で指定されたストレージのjarパッケージのパス、倉庫のローカルアドレス、${user.home}/.m2/repository$ {のuser.home}はシステム環境変数です

<localRepository>E:/.m2</localRepository>

interactiveMode

デフォルトはtrueで、対話モードを使用するかどうかを示し、falseに設定した場合、Mavenの入力をユーザーに要求するとき、そして、それはデフォルト値を使用します。

<interactiveMode>true</interactiveMode>

オフライン

Mavenはオフラインモードで実行する必要があるかどうかを示します。ビルドシステムが真のために、オフラインモードで実行する必要がある場合、デフォルトはfalseです。サーバがリモートリポジトリに接続できない場合ネットワーク設定の問題や安全性の要因が内蔵されたときなので、我々はfalseに設定されているので、セキュリティができます

<offline>false</offline>

pluginGroups

  • 要素が含まれているpluginGroupリストを。デフォルトのmavenがありますorg.apache.maven.pluginsし、org.codehaus.mojo二人はpluginGroup解析時プラグインはどこを見れするプラグインの接頭辞を通して表現しました。pluginGroup要素は、プラグインのgroupIdことを指定します
  • 指定されていないプラグインとして、我々はポンポンファイルで構成されたように、コンフィギュレーションと私たちのgroupIdを座標、おなじみのMavenは、我々は必要性のgroupIdとたartifactIdを導入し、少なくともので、知っています。しかし、以下のプラグインがありません。この時間Mavenは取得するpluginGroupsにはpluginGroup、リスト1と構成が一致したartifactIdずつ。ダウンロードするには一致しました。私たちはラインで使用するために使用されるとき、それは問題で、ここに表示されていない場合は繰り返します。
<plugins>
          <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.7</source>
                  <target>1.7</target>
              </configuration>
          </plugin>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
      </plugins>

プロキシ

ここでは、プロキシがMavenのがときに、エージェントのネットワークにするために必要とされる表すサブ要素の系列を定義することができます。複数のエージェントが設定されているときに第1のフラグが使用される活性剤の真の場合

<proxies>
  <!--代理元素包含配置代理时需要的信息-->
  <proxy>
   <!--代理的唯一定义符,用来区分不同的代理元素。-->
   <id>myproxy</id>
   <!--该代理是否是激活的那个。true则激活代理。当我们声明了一组代理,而某个时候只需要激活一个代理的时候,该元素就可以派上用处。 -->
   <active>true</active>
   <!--代理的协议。 协议://主机名:端口,分隔成离散的元素以方便配置。-->
   <protocol>http</protocol>
   <!--代理的主机名。协议://主机名:端口,分隔成离散的元素以方便配置。  -->
   <host>proxy.somewhere.com</host>
   <!--代理的端口。协议://主机名:端口,分隔成离散的元素以方便配置。 -->
   <port>8080</port>
   <!--代理的用户名,用户名和密码表示代理服务器认证的登录名和密码。 -->
   <username>proxyuser</username>
   <!--代理的密码,用户名和密码表示代理服务器认证的登录名和密码。 -->
   <password>somepassword</password>
   <!--不该被代理的主机名列表。该列表的分隔符由代理服务器指定;例子中使用了竖线分隔符,使用逗号分隔也很常见。-->
   <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts>
  </proxy>
 </proxies>

サーバ

  • サーバーのいくつかの設定を行います。などとセキュリティ証明書などの一部の設定は、のpom.xmlと一緒に配布すべきではありません。この種の情報は、サーバー上のsettings.xmlファイルを構築するために存在している必要があります
<servers>
<!--服务器元素包含配置服务器时需要的信息 -->
<server>
 <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。-->
 <id>server001</id>
 <!--鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。 -->
 <username>my_login</username>
 <!--鉴权密码 。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。密码加密功能已被添加到2.1.0 +。详情请访问密码加密页面-->
 <password>my_password</password>
 <!--鉴权时使用的私钥位置。和前两个元素类似,私钥位置和私钥密码指定了一个私钥的路径(默认是${user.home}/.ssh/id_dsa)以及如果需要的话,一个密语。将来passphrase和password元素可能会被提取到外部,但目前它们必须在settings.xml文件以纯文本的形式声明。 -->
 <privateKey>${usr.home}/.ssh/id_dsa</privateKey>
 <!--鉴权时使用的私钥密码。-->
 <passphrase>some_passphrase</passphrase>
 <!--文件被创建时的权限。如果在部署的时候会创建一个仓库文件或者目录,这时候就可以使用权限(permission)。这两个元素合法的值是一个三位数字,其对应了unix文件系统的权限,如664,或者775。 -->
 <filePermissions>664</filePermissions>
 <!--目录被创建时的权限。 -->
 <directoryPermissions>775</directoryPermissions>
</server>
</servers>

##使用

  • 私たちは、リモート設定ラベルPOMプロジェクトに配備されているdistributionManagement出版プロパティを設定しました。このラベルは、Mavenのポンポンセクションに話すだろう
<distributionManagement>
  <repository>
      <id>release-repository</id>
      <name>Release Repository</name>
      <url>http://www.myrepository.com/repositories/releases</url>
  </repository>
  <snapshotRepository>
      <id>snapshot-repository</id>
      <name>Snapshot Repository</name>
      <url>http://www.myrepository.com/repositories/snapshots</url>
  </snapshotRepository>
</distributionManagement>
  • 上記の設定のアップロードとリモートアップロードパスRELEASEアドレスパケットSNAPSHOTパッケージが、私たちはリモートアドレスの許可を持っている、最も基本的なアカウントとパスワードする必要があります。私たちはこのプロジェクトで公開することはできません。この時間は、我々は設定のMavenを設定することができ、ラベルは、サーバーを介して達成され、

    <servers>
        <server>
            <id>snapshot-repository</id>
            <username>snapshot</username>
            <password>123456</password>
        </server>
        <server>
            <id>release-repository</id>
            <username>release</username>
            <password>123456</password>
        </server>
    </servers>
  • 両側にid缶に一致しなければならないことに注意してください。Mavenの暗号化されたパスワード

ミラー

  • リポジトリリスト用に設定ミラーリストをダウンロードしてください。[詳細設定]を参照してくださいミラーの設定ページ、リモートリポジトリのミラーリングのシリーズを定義するために使用されます。私たちは、ポンポンで使用した場合、ワークをダウンロードするには、リモートリポジトリを定義することができます。しかし、時には、このリモートリポジトリは忙しくなるので、人々はそのミラーアドレスを要求するように要求リモート倉庫の変換に置かれている圧力を緩和するためにリモートリポジトリのミラーイメージを作成するためにそれを与えることを考えているこの時間です。我々はMavenのは非常に良いことができます私たちの定義されたミラーサイトからダウンロードすることができたときにワークをダウンロードする必要があり、後のリモートリポジトリから、倉庫に関連付けるには、独自のミラーを作成することができるように、それぞれ、リモートリポジトリIDを持っていますそれは私たちのリモートリポジトリへの圧力を緩和します。ミラーでは、各リモートリポジトリが唯一あなたが同じリポジトリIDにmirrorOfポイントの複数のミラーを設定することはできませんを意味し、それに関連付けられたミラーを持つことができます定義されます。
    • ID:ミラーを区別するために使用され、ミラーはすべて同じIDを持つことはできません

    • mirrorOf:ミラーは、その関連する倉庫IDの値に関連付けられたリポジトリを示すために使用されます。あなたはコンマによって分離することができる倉庫のうち、一方、複数の倉庫を関連付けるとき、倉庫のすべてが関連する場合、使用することができ、「」を表し;そして他の全てのリポジトリを除いて、特定の倉庫をリンクする際にすることができ以下のように表現「「:*外部」;!、リポジトリID」あなたはファイル要求に関連付けるときは、ローカルホストまたは倉庫ではありません、それは次のように表現することができます。

    • URL:URLはミラーを示しています。ときMavenは、当社のリモートリポジトリに接続するためのシステムの構築には、このURLを使用します。

 <mirrors>
  <!--给定仓库的下载镜像。 -->
  <mirror>
   <!--该镜像的唯一标识符。id用来区分不同的mirror元素。 -->
   <id>planetmirror.com</id>
   <!--镜像名称 -->
   <name>PlanetMirror Australia</name>
   <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。 -->
   <url>http://downloads.planetmirror.com/pub/maven2</url>
   <!--被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo.maven.apache.org/maven2/)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。-->
   <mirrorOf>central</mirrorOf>
  </mirror>
 </mirrors>

プロフィール

  • プロフィールのシリーズを指定します。プロファイル要素は、活性化、リポジトリ、pluginRepositories及び四つの要素のプロパティから構成されています。プロファイルがアクティブ状態settings.xml内で、のpom.xmlに同じIDのプロファイルを定義する場合、のsettings.xmlプロファイルはのpom.xmlプロファイルをカバーします。

利用シナリオ

  • プロファイルには、構成情報のセットを定義し、その活性化のための条件を指定することを可能にします。したがって、私たちは、プロファイルを複数定義することができ、かつ異なる構成情報を使用して異なる環境を達成するように各々が、異なるプロファイル活性化条件および設定情報に対応します。例えば、我々は、上記の情報をJDK1.5によって定義された構成プロファイルのセットを使用JDK1.5以下の構成情報の別のセットを使用することができ、又は、時には我々は、Windowsのように、異なるオペレーティングシステムによって異なる構成情報を使用することができます下では、Linuxの下で、情報の集合であるように情報の別のセットであり、。私は、テキストの意志で述べた具体的な起動条件

場所が表示されます。

  • 我々は特定のプロジェクトにプロジェクトののpom.xmlプロファイル設定を定義することができるため。

  • 特定のユーザーのための構成プロファイルは、我々はsettings.xmlファイルで、ユーザーのプロファイルを定義することができます。ファイルの場合は、ユーザのホームディレクトリ」.m2" ディレクトリ。

  • グローバルプロファイルの設定。グローバルプロファイルは、「confに/ settings.xmlの」ファイルMavenのインストールディレクトリに定義されています

活性化

  • アクティベーション方法は、いくつかのパフォーマンス・プロファイルを使用することである、我々は、我々はこのように柔軟な導入を実現し、これらの活性化によって異なる構成を有するプロファイル、別のプロファイルを提供し、さまざまな条件を満たすために、異なる環境にデプロイするための柔軟性を実現します性別
    • アクティベーション・パラメータ
    我々は2つのプロファイル(zxh1、zxh2)、パラメータさらに構成IDプロパティを識別することに加え内の2つのプロファイルとして構成される。Zxhtomそれぞれの属性値が単一表す場合、活性化プロファイルを倍増します。
```
  <profiles>  
       <profile>  
              <id>zxh1</id>  
              <properties>  
                     <zxhtom>single</zxhtom>  
              </properties>  
       </profile>  
       <profile>  
              <id>zxh2</id>  
              <properties>  
                     <zxhtom>double</zxhtom>  
              </properties>  
       </profile>  
  <profiles>
```

  +  环境激活
  
  在部署是符合这些环境要求的电脑则会获取到该profile的配置。这样我们windows上配置和Linux上就不同了。

  ```
  <activation>
    <os>
     <!--激活profile的操作系统的名字 -->
     <name>Windows 7</name>
     <!--激活profile的操作系统所属家族(如 'windows')  -->
     <family>Windows</family>
     <!--激活profile的操作系统体系结构  -->
     <arch>x64</arch>
     <!--激活profile的操作系统版本-->
     <version>x.x.x..</version>
    </os>
  </activation>
  ```

  +  默认激活
      *  activeByDefault激活

      下面的配置在我们部署是没有指定profile时,zxh1这个profile就会成为默认的profile,如果我们指定了那么zxh1就不会被启用。这里要注意这里是不启用。和后面的activeProfiles激活不同。

      ```
      <profiles>  
            <profile>  
                 <id>zxh1</id>  
                 <properties>  
                        <zxhtom>single</zxhtom>  
                 </properties>  
                 <activation>  
                        <activeByDefault>true</activeByDefault>  
                 </activation>  
            </profile>  
              
            <profile>  
                 <id>zxh2</id>  
                 <properties>  
                        <zxhtom>double</zxhtom>  
                 </properties>  
            </profile>  
      </profiles>
      ```

      *  activeProfiles激活
      
      如下图中我们定义zxh1为激活状态,另外我们如果在通过参数或者其他条件激活了zxh2,这里zxh1和zxh2都是出于激活的,并不像activeByDefault激活那样直接停止了。而是两者的覆盖值合并。

      ```
      <profiles>  
       <profile>  
              <id>zxh1</id>  
              <properties>  
                     <zxhtom>single</zxhtom>  
              </properties>  
       </profile>  
       <profile>  
              <id>zxh2</id>  
              <properties>  
                     <zxhtom>double</zxhtom>  
              </properties>  
       </profile>  
      <profiles>
      <activeProfiles>  
         <activeProfile>zxh1</activeProfile>  
      </activeProfiles>  
      ```
    档如下在activeProfiles中配置了多个profile是,maven选择的是后者覆盖合并前者的方式,也就是将zxh1和zxh2合并,相同值去后者的值。
      ```
      <profiles>  
       <profile>  
              <id>zxh1</id>  
              <properties>  
                     <zxhtom>single</zxhtom>  
              </properties>  
       </profile>  
       <profile>  
              <id>zxh2</id>  
              <properties>  
                     <zxhtom>double</zxhtom>  
              </properties>  
       </profile>  
      <profiles>
      <activeProfiles>  
         <activeProfile>zxh1</activeProfile>  
         <activeProfile>zxh2</activeProfile>  
      </activeProfiles>  
      ```

  +  文件激活

    ```
    <activation>
         <file>
         <!--如果指定的文件存在,则激活profile。 -->
         <exists>${basedir}/file2.properties</exists>
         <!--如果指定的文件不存在,则激活profile。-->
         <missing>${basedir}/file1.properties</missing>
         </file>
    </activation>
    ```

[//]:Mavenの設定参照サイト:http://blog.csdn.net/liutengteng130/article/details/46991829
[//]:設定https://www.cnblogs.com/yangxia-test/p/4409736 .htmlの
[//]:POM http://blog.csdn.net/sunzhenhua0608/article/details/32938533
[//]:リポジトリ:リモート接続倉庫。ミラーミラーはに設定することによって行うことができる
distributionManagement:スナップショットの管理バージョンと最終版[//]
[//]:リポジトリ:公式バージョン
[//]:snapshotRepository:スナップショットバージョン
[//]:dependencyManagement:統一された管理バージョン番号

おすすめ

転載: www.cnblogs.com/zhangxinhua/p/11343764.html