构建Dubbo-2.0.7源码

一. 下载源码:

git clone --branch dubbo-2.0.7 https://github.com/apache/incubator-dubbo.git

二. 下载依赖

git clone https://github.com/alibaba/opensesame.git

修改pom.xml为如下内容, 主要是更改repo地址为aliyun

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.alibaba</groupId>
    <artifactId>opensesame</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>

    <name>OpenSeame Super POM</name>
    <description>Super POM For OpenSesame Projects</description>
    <inceptionYear>2011</inceptionYear>

    <properties>
        <!-- for distribution management -->
        <opensesame_snapshots_distribution_repository>dav:https://maven.aliyun.com/repository/snapshots</opensesame_snapshots_distribution_repository>
        <opensesame_releases_distribution_repository>dav:https://maven.aliyun.com/repository/releases</opensesame_releases_distribution_repository>
        <opensesame_sites_distribution_repository>dav:https://maven.aliyun.com/repository/sites</opensesame_sites_distribution_repository>

        <!-- for maven compiler plugin -->
        <maven_compiler_plugin_version>2.3.2</maven_compiler_plugin_version>
        <java_source_version>1.5</java_source_version>
        <java_target_version>1.5</java_target_version>
        <file_encoding>UTF-8</file_encoding>

        <maven_source_plugin_version>2.1.1</maven_source_plugin_version>
        <maven_jar_plugin_version>2.3.2</maven_jar_plugin_version>
        <maven_war_plugin_version>2.1.1</maven_war_plugin_version>
        <maven_install_plugin_version>2.3.1</maven_install_plugin_version>
        <maven_deploy_plugin_version>2.7</maven_deploy_plugin_version>
    </properties>

    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

    <distributionManagement>

        <snapshotRepository>
            <id>opensesame.snapshots.account</id>
            <url>${opensesame_snapshots_distribution_repository}</url>
        </snapshotRepository>

        <repository>
            <id>opensesame.releases.account</id>
            <url>${opensesame_releases_distribution_repository}</url>
        </repository>

        <site>
            <id>opensesame.sites.account</id>
            <url>${opensesame_sites_distribution_repository}</url>
        </site>

    </distributionManagement>

    <repositories>

        <repository>
            <id>opensesame.snapshots</id>
            <url>https://maven.aliyun.com/repository/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>opensesame.releases</id>
            <url>https://maven.aliyun.com/repository/releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>opensesame.jcenter</id>
            <url>https://maven.aliyun.com/repository/jcenter</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>opensesame.public</id>
            <url>https://maven.aliyun.com/repository/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

        <repository>
            <id>central.repo</id>
            <name>Maven Repository Switchboard</name>
            <layout>default</layout>
            <url>http://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>central.repo.plugin</id>
            <name>Maven Plugin Repository</name>
            <url>http://repo1.maven.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
        <pluginRepository>
            <id>opensesame.snapshots.plugin</id>
            <url>https://maven.aliyun.com/repository/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>opensesame.releases.plugin</id>
            <url>https://maven.aliyun.com/repository/releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <build>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven_source_plugin_version}</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <attach>true</attach>
                </configuration>
            </plugin>

        </plugins>

        <pluginManagement>

            <plugins>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${maven_jar_plugin_version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${maven_war_plugin_version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${maven_install_plugin_version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${maven_deploy_plugin_version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven_compiler_plugin_version}</version>
                    <configuration>
                        <source>${java_source_version}</source>
                        <target>${java_target_version}</target>
                        <encoding>${file_encoding}</encoding>
                    </configuration>
                </plugin>

            </plugins>

        </pluginManagement>

    </build>

</project>

然后执行mvn install

三. 修改pom.xml

到根目录的pom.xml中

hessian_version为3.2.3版本

fastjson_version为1.1.44版本

<hessian_version>3.2.4</hessian_version>
<fastjson_version>1.1.44</fastjson_version>

删除pom.xml中的repositories 

	<repositories>
		<repository>
			<id>opensesame.releases</id>
			<url>http://code.alibabatech.com/mvn/releases</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

更改工程中hessian.lite 为 hessian-lite

四. 安装依赖

到dubbo-common目录中执行mvn install

五. 用IDEA打开工程

原文地址:https://www.cnblogs.com/Sicwen/p/10735749.html