# 使用maven编译Sonatype Nexus源码 | 大染志
首先需要使用git客户端从github下载nexus的最新源码：https://github.com/sonatype/nexus 因为nexus本身就是一个非常复杂的maven项目，因为我们只能使用maven来编译。如果我直接编译，nexus就会报各种找不到包的错误。 原因是我们需要把nexus官方的一个仓库加入到maven的settings文件中。代码为： <settings>

0%

# 使用maven编译Sonatype Nexus源码

Posted on 2012-07-03 Edited on 2014-07-22 In java

首先需要使用git客户端从github下载nexus的最新源码：https://github.com/sonatype/nexus

因为nexus本身就是一个非常复杂的maven项目，因为我们只能使用maven来编译。如果我直接编译，nexus就会报各种找不到包的错误。

原因是我们需要把nexus官方的一个仓库加入到maven的settings文件中。代码为：

    <settings>
      <profiles>
        <profile>
          <id>sonatype-forge</id>
          <repositories>
            <repository>
              <id>sonatype-forge</id>
              <url>http://repository.sonatype.org/content/groups/forge/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </repository>
          </repositories>
          <pluginRepositories>
            <pluginRepository>
              <id>sonatype-forge</id>
              <url>http://repository.sonatype.org/content/groups/forge/</url>
              <releases>
                <enabled>true</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </pluginRepository>
          </pluginRepositories>
        </profile>
      </profiles>
      <activeProfiles>
        <activeProfile>sonatype-forge</activeProfile>
      </activeProfiles>
    </settings>

然后再次编译，就应该可以构建成功了。由于nexus的仓库在国外，个人感觉速度比maven中央仓库要慢一个等级。在编译过程中，maven会自动执行一些插件和完成相关的单元测试。大概等待1-2个小时左右（由电脑性能和网络决定），就可以编译完成了。