首先是repositories
,其中定義了一些遠程倉庫(私服)。本來是可以直接定義在POM.xml ,但是由于一個公司通常多個項目都是使用的同一個遠程倉庫(私服)。為了每個項目不重復定義。所以可以統一配置在settings.xml。由于settings下不能直接定義repositories
所以采用了profiles
。同時也可以使用profiles
做不同環境下的配置切換。
容易混淆的是mirrors
,配置多個mirror
,并不是每一個都會生效,始終只有第一個有用。另外mirrors
跟profiles沒有什么直接關系,有關系的是repository
,mirrorOf
中配置的是repository id(支持表達式)。一般我們mirror
的都是central這類官方,因為mirror
的主要作用就是解決不同網絡環境下,這種官方的或者第三方的倉庫速度問題。如果你有私服,然后直接mirrorOf *
到了阿里云的鏡像庫,那么你私服的Jar可能就訪問不到了。
maven找Jar的路徑大概是,本地倉庫>各個遠程庫,如果配置了鏡像,則走鏡像庫。