Wowza 官方提供的 Eclipse 插件使用的是 Ant 作为项目管理工具(参考《
Eclipse 安装/更新 Wowza IDE 插件的步骤》),如下图所示:
build.xml 的源代码如下:
它所做的事情只有一件,就是每次我们修改 Wowza Media Server Project 的源码时,它把 Eclipse 编译好的 class 文件打包到 Wowza 安装目录下的 lib 文件夹中。
Wowza ide 对于 Wowza 插件的开发不支持 maven,开发调试起来虽然没啥问题,但随着各种功能的不断添加,第三方包会越来越多,各种 jar 包管理起来相当混乱,给开发和维护升级带来很多不便。事实上 Maven 也可以集成进 Wowza 的开发进来,完全可以替代掉 Wowza 官方 IDE 提供的 ant。本文介绍如何使用 Maven 开发一个 Wowza 插件的过程。实践证明,Maven 开发 Wowza 插件,具有 ant 所具备的所有优点(比如对开发中的插件进行断点调试、项目自动部署),不仅把第三方包管理的井井有条,而且还能把 wms 包也有版本区分地管理起来,效果更加完美。
本文所用 Wowza Streaming Engine 版本是 4.0.1,本文要求读者事先已安装好了 Wowza。
1. 新建 Maven 项目
最新版本的 Eclipse 已经把 Maven 集成进来了。Eclipse 3.6 (Helios) 之前的 Eclipse 需要我们自己把 Maven 插件集成进来,关于这个集成参考《 集成 Maven 2 插件到 Eclipse 的过程》。
Eclipse 支持 Maven 之后,Eclipse 的 Package Explorer 视图下右击 -> New -> Maven -> Maven Project -> Next -> Select project name and location 对话框直接点 Next -> Select an Archetype 对话框,Catalog 选择 "All Catalogs",Filter 选择 Group Id 为 "org.apache.maven.archetypes"、Artifact Id 为 "maven-archetype-quickstart"、Version 为 "1.1" 的那个,点 Next -> Enter an artifact id 对话框,Group Id 输入项目组 "WowzaWithMavenIntegration",Artifact Id 输入 "defonds-server-module"(最好是你的项目名),Version 输入版本号 "1.0.0",Package 输入主干包名 "com.defonds.wms.module",点击 Finish,新的 Maven 项目 defonds-server-module 生成。如下图所示:
2. 编辑 pom.xml
根据项目的需要,引入所依赖的包。作者的 pom.xml 示例如下:
build.xml 的源代码如下:
<?xml version="1.0"?>
<project name="defonds-live-module" default="jar" basedir="..">
<property name="wowza.lib.dir" value="d:/tools/Wowza Media Systems/Wowza Streaming Engine 4.0.1/lib"/>
<property name="jar.filename" value="defonds-live-module.jar"/>
<property name="core.build.dir" value="bin"/>
<target name="jar">
<jar jarfile="${wowza.lib.dir}/${jar.filename}">
<fileset dir="${core.build.dir}"/>
</jar>
</target>
</project>
它所做的事情只有一件,就是每次我们修改 Wowza Media Server Project 的源码时,它把 Eclipse 编译好的 class 文件打包到 Wowza 安装目录下的 lib 文件夹中。
Wowza ide 对于 Wowza 插件的开发不支持 maven,开发调试起来虽然没啥问题,但随着各种功能的不断添加,第三方包会越来越多,各种 jar 包管理起来相当混乱,给开发和维护升级带来很多不便。事实上 Maven 也可以集成进 Wowza 的开发进来,完全可以替代掉 Wowza 官方 IDE 提供的 ant。本文介绍如何使用 Maven 开发一个 Wowza 插件的过程。实践证明,Maven 开发 Wowza 插件,具有 ant 所具备的所有优点(比如对开发中的插件进行断点调试、项目自动部署),不仅把第三方包管理的井井有条,而且还能把 wms 包也有版本区分地管理起来,效果更加完美。
本文所用 Wowza Streaming Engine 版本是 4.0.1,本文要求读者事先已安装好了 Wowza。
1. 新建 Maven 项目
最新版本的 Eclipse 已经把 Maven 集成进来了。Eclipse 3.6 (Helios) 之前的 Eclipse 需要我们自己把 Maven 插件集成进来,关于这个集成参考《 集成 Maven 2 插件到 Eclipse 的过程》。
Eclipse 支持 Maven 之后,Eclipse 的 Package Explorer 视图下右击 -> New -> Maven -> Maven Project -> Next -> Select project name and location 对话框直接点 Next -> Select an Archetype 对话框,Catalog 选择 "All Catalogs",Filter 选择 Group Id 为 "org.apache.maven.archetypes"、Artifact Id 为 "maven-archetype-quickstart"、Version 为 "1.1" 的那个,点 Next -> Enter an artifact id 对话框,Group Id 输入项目组 "WowzaWithMavenIntegration",Artifact Id 输入 "defonds-server-module"(最好是你的项目名),Version 输入版本号 "1.0.0",Package 输入主干包名 "com.defonds.wms.module",点击 Finish,新的 Maven 项目 defonds-server-module 生成。如下图所示:
2. 编辑 pom.xml
根据项目的需要,引入所依赖的包。作者的 pom.xml 示例如下:
<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>WowzaWithMavenIntegration</groupId>
<artifactId>defonds-server-module</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>defonds-server-module</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<wms.version>4.0.1</wms.version>
<libFolderName>dep-libs</libFolderName>
<spring.version>3.1.2.RELEASE</spring.version>
<httpcomponents.version>4.2.1</httpcomponents.version>
<javamail.version>1.4.5</javamail.version>
<commons.email.version>1.1</commons.email.version>
<commons.exec.version>1.1</commons.exec.version>
<commons.beanutils.version>1.8.3</commons.beanutils.version>
<commons.codec.version>1.6</commons.codec.version>
<commons.collections.version>3.2.1</commons.collections.version>
<commons.lang.version>2.6</commons.lang.version>
<commons.io.version>2.4</commons.io.version>
<commons.pool.version>1.6</commons.pool.version>
<commons.dbcp.version>1.4</commons.dbcp.version>
<log4j.version>1.2.16</log4j.version>
<slf4j.version>1.6.6</slf4j.version>
<jackson.version>1.9.2</jackson.version>
</properties>
<dependencies>
<!-- wms dependence jar -->
<dependency>
<groupId>com.wms</groupId>
<artifactId>wms-server</artifactId>
<version>${wms.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.wms</groupId>
<artifactId>wms-stream-publish</artifact