Maven相关知识点

1、maven setting.xml相关知道点

<servers>
    <!-- 如果有搭建自己公司的maven私服,公司内部会把自己的公司的公共jar包上传到maven私服中。
如果私服配置了上传、或读取权限,servers标签需要给出授权信息。 -->
    <server>
      <id>release-repository</id>
      <username>lengyu</username>
      <password>abcd456rqa</password>
    </server>
  </servers>

2、pom.xml相关知识点

<!--定义snapshots库和releases库的nexus地址,此节点放在project根节点下-->
<!-- 在distributionManagement段中配置的是snapshot快照库和release发布库的地址 -->
<distributionManagement>
  <repository>
    <id>nexus-releases</id>
    <name>Nexus Release Repository</name>
    <url>http://maven.kmengfang.com:4900/nexus/content/repositories/releases/</url>
  </repository>
  <snapshotRepository>
     <id>nexus-snapshots</id>
     <name>Nexus Snapshot Repository</name>
     <url>http://maven.kmengfang.com:4900/nexus/content/repositories/snapshots/</url>
   </snapshotRepository>
</distributionManagement>
<!-- 注意这里配置的server的id必须和pom文件中的distributionManagement对应仓库的id保持一致,maven在处理发布时会根据id查找用户名称和密码进行登录和文件的上传发布。 -->

3、maven常用插件(plugins)

3.1、源码打包插件:maven-source-plugin

execution下可配置phase属性, 意思是在什么阶段打包源文件。如<phase>package</phase>
执行 mvn install,maven会自动将source install到repository 。
执行 mvn deploy,maven会自动将source deploy到remote-repository 。
执行 mvn source:jar,单独打包源码。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-source-plugin</artifactId>
  <version>2.2.1</version>
  <executions>
     <execution>
       <id>attach-sources</id>
       <phase>package</phase>
       <goals>
          <goal>jar-no-fork</goal>
       </goals>
     </execution>
  </executions>
</plugin>

3.2配置maven依赖构件的远程仓库

<!-- 如果此私服需要授权才能访问,那么id值kmengfang-nexus则一定要在setting.xml中的servers配置 -->
<repositories>
    <repository>
        <id>kmengfang-nexus</id>
        <name>aliyun nexus</name>
            <url>http://maven.kmengfang.com:4900/nexus/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

3.3配置maven插件的远程仓库

<!--配置Maven从什么地方下载插件构件(如maven-clean-plugin、maven-compiler-plugin等)。
该元素的内部配置和<repository>完全一样-->
<pluginRepositories>  
    <pluginRepository>  
      <id>maven-net-cn</id>  
      <name>Maven China Mirror</name>  
      <url>http://repo1.maven.org/maven2</url>  
      <releases>  
        <!--可以从这个仓库下载releases版本的构件,配置与repositories一样-->
        <enabled>true</enabled>  
      </releases> 
     <!--关闭对SNAPSHOT的支持,防止不稳定的构建-->
      <snapshots>  
        <enabled>false</enabled>  
      </snapshots>      
    </pluginRepository>  
  </pluginRepositories>

Maven需要的依赖在本地仓库中不存在时,Maven会去配置的远程仓库中查找
Maven需要的插件在本地仓库中不存在时,Maven不会去这些远程仓库查找。
所以需要我们配置pluginRepositories仓库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容