Maven中的构件(artifact)都是以库(repositories)的方式组织的。事实上,库就是符合Maven的库目录结构的构件的集合。

而库又分为本地库和远程库。

通常,本地库位于$user_host/.m2/repository目录下。

而远程库则往往根据需要有多个,默认的是Maven项目本身提供的Maven库,其对应的服务器url如下:



[java] view plain copy


print 
    ? 
    
  
1. <url>https://repo.maven.apache.org/maven2/</url>


<url>https://repo.maven.apache.org/maven2/</url>



远程库可能还包含各个企业或组织提供的远程库,如原

Codehaus库,现在已经被如下库替代:



[java] view plain copy


print 
    ? 
    
  
1. <url>https://repository-master.mulesoft.org/nexus/content/groups/public/</url>


<url>https://repository-master.mulesoft.org/nexus/content/groups/public/</url>



远程库通常在POM中定义,但是远程库所在的服务器信息,如访问用户名、密码等,往往因为不适合与POM一起发布,所以需要在settings.xml文件中设置。


在settings.xml文件中设置远程库所在的服务器信息示例如下:



[html] view plain copy


print

?

1. <servers>
2. <server>
3. <id>server001</id>
4. <username>my_login</username>
5. <password>my_password</password>
6. <filePermissions>664</filePermissions>
7. <directoryPermissions>775</directoryPermissions>
8. <configuration></configuration>
9. </server>
10. <server>
11. <id>server002</id>
12. <privateKey>${user.home}/.ssh/id_dsa</privateKey>
13. <passphrase>some_passphrase</passphrase>
14. <filePermissions>664</filePermissions>
15. <directoryPermissions>775</directoryPermissions>
16. <configuration></configuration>
17. </server>
18. </servers>



<servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <password>my_password</password>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
    <server>
      <id>server002</id>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>

在上述示例中,对于一个server,其:


  • id,服务器的ID,Maven在连接一个库或者镜像的时候,通过id匹配要连接的服务器;
  • username, password,连接服务器所需的认证信息;
  • privateKey, passphrase,连接服务器所需的认证信息。privateKey默认位于${user.home}/.ssh/id_dsa;
  • filePermissions, directoryPermissions,库中的文件访问权限和目录访问权限。该值的格式采用3位数字,兼容UNIX/Linux下格式;
  • configuration,访问服务器辅助要传递的参数,通常不必要;


Maven中的构件(artifact)都是以库(repositories)的方式组织的。事实上,库就是符合Maven的库目录结构的构件的集合。

而库又分为本地库和远程库。

通常,本地库位于$user_host/.m2/repository目录下。

而远程库则往往根据需要有多个,默认的是Maven项目本身提供的Maven库,其对应的服务器url如下:



[java] view plain copy


print 
    ? 
    
  
1. <url>https://repo.maven.apache.org/maven2/</url>


<url>https://repo.maven.apache.org/maven2/</url>



远程库可能还包含各个企业或组织提供的远程库,如原

Codehaus库,现在已经被如下库替代:



[java] view plain copy


print 
    ? 
    
  
1. <url>https://repository-master.mulesoft.org/nexus/content/groups/public/</url>


<url>https://repository-master.mulesoft.org/nexus/content/groups/public/</url>



远程库通常在POM中定义,但是远程库所在的服务器信息,如访问用户名、密码等,往往因为不适合与POM一起发布,所以需要在settings.xml文件中设置。


在settings.xml文件中设置远程库所在的服务器信息示例如下:



[html] view plain copy


print 
    ? 
    
  
1. <servers>
2. <server>
3. <id>server001</id>
4. <username>my_login</username>
5. <password>my_password</password>
6. <filePermissions>664</filePermissions>
7. <directoryPermissions>775</directoryPermissions>
8. <configuration></configuration>
9. </server>
10. <server>
11. <id>server002</id>
12. <privateKey>${user.home}/.ssh/id_dsa</privateKey>
13. <passphrase>some_passphrase</passphrase>
14. <filePermissions>664</filePermissions>
15. <directoryPermissions>775</directoryPermissions>
16. <configuration></configuration>
17. </server>
18. </servers>


<servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <password>my_password</password>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
    <server>
      <id>server002</id>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>

在上述示例中,对于一个server,其:


  • id,服务器的ID,Maven在连接一个库或者镜像的时候,通过id匹配要连接的服务器;
  • username, password,连接服务器所需的认证信息;
  • privateKey, passphrase,连接服务器所需的认证信息。privateKey默认位于${user.home}/.ssh/id_dsa;
  • filePermissions, directoryPermissions,库中的文件访问权限和目录访问权限。该值的格式采用3位数字,兼容UNIX/Linux下格式;
  • configuration,访问服务器辅助要传递的参数,通常不必要;