red5源代码编译并打包公布

Posted jzssuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了red5源代码编译并打包公布相关的知识,希望对你有一定的参考价值。

编译环境:ubuntu14.04/JDK7

步骤:

1、svn检出源代码(两种方式)

svn co --depth empty https://github.com/Red5/red5-server (最新版)
svn checkout http://red5.googlecode.com/svn/java/server/trunk/ red5-read-only(我使用的是这个1.0.2-RC4版)


2、编译并安装project到mvn的本地库/home/walfred/.m2/repository/org/red5/red5-server/1.0.2-RC4。跳过test

mvn -Dmaven.test.skip=true install

编译结果例如以下:

[INFO] Installing /home/walfred/wmw/red5-google/red5-read-only/target/red5-server-1.0.2-RC4-sources.jar to /home/walfred/.m2/repository/org/red5/red5-server/1.0.2-RC4/red5-server-1.0.2-RC4-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10:21.353s
[INFO] Finished at: Wed Oct 15 09:34:22 CST 2014
[INFO] Final Memory: 16M/40M
[INFO] ------------------------------------------------------------------------

进去看看都有什么:

[email protected]:~/wmw/red5-google/red5-read-only$ ls
build.properties  license.txt  pom.xml  src  target
[email protected]:~/wmw/red5-google/red5-read-only$ cd target/
[email protected]walfred-VirtualBox:~/wmw/red5-google/red5-read-only/target$ ls
apidocs                 <span style="color:#ff0000;">red5-server-1.0.2-RC4-bootstrap.jar</span>
archive-tmp             <span style="color:#ff0000;">red5-server-1.0.2-RC4.jar</span>
classes                 red5-server-1.0.2-RC4-javadoc.jar
generated-sources      <span style="color:#ff0000;"> red5-server-1.0.2-RC4-server.tar.gz</span>
javadoc-bundle-options  red5-server-1.0.2-RC4-server.zip
lib                     red5-server-1.0.2-RC4-sources.jar
maven-archiver          test-classes

red5-server-1.0.2-RC4-server.tar.gz 这个就是我们编译后的red5-server了。先解压看一下:

[email protected]:~/wmw/red5-google/red5-read-only/target/red5-server-1.0.2-RC4$ ls -l
总用量 852
drwxrwxr-x 2 walfred walfred   4096 10月 15 09:35 conf
drwxrwxr-x 2 walfred walfred   4096 10月 15 09:35 lib
-rw-rw-r-- 1 walfred walfred   1324 10月 15 09:15 license.txt
drwxrwxr-x 2 walfred walfred   4096 10月 15 09:35 plugins
-rw-rw-r-- 1 walfred walfred   1421 10月 15 09:21 red5.bat
-rw-rw-r-- 1 walfred walfred    168 10月 15 09:21 red5-debug.bat
-rwxr-xr-x 1 walfred walfred    220 10月 15 09:33 red5-debug.sh
-rw-rw-r-- 1 walfred walfred   1383 10月 15 09:21 red5-highperf.bat
-rwxr-xr-x 1 walfred walfred    622 10月 15 09:33 red5-highperf.sh
-rw-rw-r-- 1 walfred walfred  21745 10月 15 09:33 red5-server-bootstrap.jar
-rw-rw-r-- 1 walfred walfred 793004 10月 15 09:33 red5-server.jar
-rwxr-xr-x 1 walfred walfred   1670 10月 15 09:33 red5.sh
-rw-rw-r-- 1 walfred walfred    308 10月 15 09:21 red5-shutdown.bat
-rwxr-xr-x 1 walfred walfred    344 10月 15 09:33 red5-shutdown.sh
drwxrwxr-x 6 walfred walfred   4096 10月 15 09:35 webapps

执行red5.sh

[INFO] [Launcher:/installer] org.red5.server.Context - Setting parent bean factory as core
[INFO] [Launcher:/installer] org.red5.server.scope.WebScope - Set server [[email protected][[empty]]]
[INFO] [Launcher:live] org.red5.server.scope.WebScope - Set server [[email protected][[empty]]]
[INFO] [Launcher:vod] org.red5.server.scope.WebScope - Set server [[email protected][[empty]]]
[INFO] [Launcher:/] org.red5.server.scope.WebScope - Set server [[email protected][[empty]]]
[INFO] [Launcher:/installer] org.red5.server.Server - Add mapping global: default host: localhost context: installer
[INFO] [Launcher:live] org.red5.server.Server - Add mapping global: default host:  context: live
[INFO] [Launcher:vod] org.red5.server.Server - Add mapping global: default host:  context: vod
[INFO] [Launcher:/] org.red5.server.Server - Add mapping global: default host:  context: 
[WARN] [Launcher:/] org.red5.server.scope.Scope - Invalid scope rejected: Scope [name=, path=/default, type=APPLICATION, autoStart=true, creationTime=1413342261664, depth=1, enabled=true, running=false]
[WARN] [Launcher:/] org.red5.server.scope.Scope - Scope not added to parent
[INFO] [Launcher:/installer] org.red5.server.Server - Add mapping global: default host: localhost:5080 context: installer
[INFO] [Launcher:/installer] org.red5.server.service.Installer - Installer service created

同一时候,我们看看mvn本地库中的文件

[email protected]:/$ ls ~/.m2/repository/org/red5/red5-server/1.0.2-RC4/
_maven.repositories                  red5-server-1.0.2-RC4-javadoc.jar    red5-server-1.0.2-RC4-server.zip
<span style="color:#ff0000;">red5-server-1.0.2-RC4-bootstrap.jar</span>  red5-server-1.0.2-RC4.pom            red5-server-1.0.2-RC4-sources.jar
<span style="color:#ff0000;">red5-server-1.0.2-RC4.jar</span>            red5-server-1.0.2-RC4-server.tar.gz  

3、下载拷贝依赖关系
[email protected]Box:~/wmw/red5-google/red5-read-only$ mvn dependency:copy-dependencies

这时候target下会多出一个目录 dependency

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Red5 :: Server 1.0.2-RC4
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.6:copy-dependencies (default-cli) @ red5-server ---
[INFO] Copying httpclient-4.2.1.jar to /home/walfred/wmw/red5-google/red5-read-only/target/dependencytpclient-4.2.1.jar
[INFO] Copying commons-beanutils-1.8.3.jar to /home/walfred/wmw/red5-google/red5-read-only/target/dependency/commons-beanutils-1.8.3.jar
[INFO] Copying spring-beans-3.1.4.RELEASE.jar to /home/walfred/wmw/red5-google/red5-read-only/target/dependency/spring-beans-3.1.4.RELEASE.jar
[INFO] Copying bcprov-jdk15on-1.47.jar to /home/walfred/wmw/red5-google/red5-read-only/target/dependency/bcprov-jdk15on-1.47.jar
.....................................
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.703s
[INFO] Finished at: Wed Oct 15 09:36:59 CST 2014
[INFO] Final Memory: 9M/22M
[INFO] ------------------------------------------------------------------------
4、打包公布,跳过test

mvn -Dmaven.test.skip=true -Dmaven.buildNumber.doUpdate=false package

此时又一次生成新的可执行的red5-server-1.0.2-RC4-server.tar.gz

...................................................................................................................[INFO] Building jar: /home/walfred/wmw/red5-google/red5-read-only/target/red5-server-1.0.2-RC4-javadoc.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.994s
[INFO] Finished at: Wed Oct 15 10:01:19 CST 2014
[INFO] Final Memory: 14M/35M
[INFO] ------------------------------------------------------------------------
解压出来新的red5-server-1.0.2-RC4-server.tar.gz,与之前编译的进行一次比較,例如以下图,主要差别是生成了新的lib库文件:

技术分享
5、执行red.sh

[WARN] [Launcher:/] org.red5.server.scope.Scope - Invalid scope rejected: Scope [name=, path=/default, type=APPLICATION, autoStart=true, creationTime=1413341225677, depth=1, enabled=true, running=false]
[WARN] [Launcher:/] org.red5.server.scope.Scope - Scope not added to parent
[INFO] [Launcher:/installer] org.red5.server.service.Installer - Installer service created
ok,finished

技术分享













以上是关于red5源代码编译并打包公布的主要内容,如果未能解决你的问题,请参考以下文章

Deno 内部代码将停用 TypeScript,并公布五项具体理由

Deno将停止使用TypeScript,并公布五项具体理由

Red5源代码分析 - 关键类及其初始化过程

如何反编译android应用并重新打包

万众瞩目:华为方舟编译器开源官网正式上线,框架代码公布

xml 将scala代码编译并打包到单个jar中。还包括可以省略的json4s的依赖项。