搭建好私服后,需要在~/.m2/settings.xml中配置私服仓库用户名密码,在工程的pom.xml中配置仓库地址


~/.m2/settings.xml

<servers>
  <server>
          <id>nexus-snapshot</id>
          <username>admin</username>
          <password>admin_password</password>
      </server>
      <server>
          <id>nexus-release</id>
          <username>admin</username>
          <password>admin_password</password>
      </server>
  </servers>

工程pom.xml中

<distributionManagement>
        <snapshotRepository>
          <id>nexus-snapshot</id>
          <name>repo-snapshot</name>
          <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
        <repository>
          <id>nexus-release</id>
          <name>repo-release</name>
          <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>
  </distributionManagement>

注意distributionManagement标签中的id要与servers中的id对应

一般来说,我们上传都可以省略Test这一步,所以可以使用这个命令

mvn deploy -DskipTests

-DskipTest会跳过test代码运行

也可以

mvn deploy -Dmaven.test.skip=true

-Dmaven.test.skip=true,既跳过测试代码编译,也跳过测试代码执行。而-DskipTests只跳过测试代码执行。

执行上述命令后,如果遇到这个异常

... was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced

说明,插件或者依赖包由于更新策略而没有更新下来,可以设置设置更新策略为总是更新。

<updatePolicy>always</updatePolicy>

具体如下

<profile>
         <id>nexus</id>

        <repositories>
            <repository>
                <id>central</id>
                <url>http://repo.maven.apache.org/maven2</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories>

        <pluginRepositories>
            <pluginRepository>
                <id>central</id>
                <url>http://repo.maven.apache.org/maven2</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
             </pluginRepository>
        </pluginRepositories>

    </profile>