maven 笔记-仓库和打包

maven默认有一个中央服务器,定义在${M2_HOME}/lib/maven-2.0.10-uber.jar里

maven的全局配制文件为 ${M2_HOME}/conf/settings.xml

maven的用户级配制文件在 ${user.home}/.m2/settings.xml

这里可以

1. 修改 localRepository的路径,默认在 ${user.home}/.m2/repository下

 <localRepository>/path/to/local/repo</localRepository>
<offline>false</offline>

2.  server,在分发验证用户密码

<server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>

3. mirror ,设置repository的镜像,mirrorOf是指定哪个repository,*指所有repository

<mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>

4. profile 可以预先定义 repository和 pluginRepository,并可以通过activeProfiles指定哪个profile生效,也可以通过条件触发

<profile>
      <id>jdk-1.4</id>
      <activation>
        <jdk>1.4</jdk>
      </activation>
      <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
    <activeProfiles>
      <activeProfile>alwaysActiveProfile</activeProfile>
      <activeProfile>anotherAlwaysActiveProfile</activeProfile>
    </activeProfiles>

5. repository定义时可以指定是否需要从snapshot和 release取得资源

6. 打包,maven会识别项目version是否含有 -SNAPSHOT 后缀,有的话则在deploy时自动将该包upload到SNAPSHOT repository中,若没有则upload 到 release repository中。

7. 项目构建时maven会先从local repository中取jar,如果没有则去remote中取得并缓存到local中,若该包version后缀为-SNAPSHOT,那么每次构建时都会自动去SNAPSHOT repository中抓取,release version有缓存就用缓存


你可能感兴趣的:(maven 笔记-仓库和打包)