Apache Edgent 示例项目教程
1. 项目的目录结构及介绍
Apache Edgent 示例项目的目录结构如下:
incubator-retired-edgent-samples/
├── apps
├── connectors
├── console
├── cron
├── get-edgent-jars-project
├── scenarios
├── src
│ └── main
│ └── xslt
├── template
├── topology
├── utils
├── .gitignore
├── .mailmap
├── APPLICATION_DEVELOPMENT.md
├── CONTRIBUTORS
├── DEVELOPMENT.md
├── IDE_USE.md
├── LICENSE
├── NOTICE
├── README.md
├── mvnw
├── mvnw.cmd
├── package-app.sh
└── pom.xml
目录介绍
- apps: 包含各种应用程序示例。
- connectors: 包含连接器示例,用于连接外部系统。
- console: 包含控制台相关的示例。
- cron: 包含定时任务相关的示例。
- get-edgent-jars-project: 用于获取 Edgent JAR 文件的项目。
- scenarios: 包含不同场景的示例。
- src/main/xslt: 包含 XSLT 相关的源代码。
- template: 包含项目模板。
- topology: 包含拓扑结构相关的示例。
- utils: 包含实用工具类。
- .gitignore: Git 忽略文件。
- .mailmap: 邮件映射文件。
- APPLICATION_DEVELOPMENT.md: 应用程序开发文档。
- CONTRIBUTORS: 贡献者列表。
- DEVELOPMENT.md: 开发文档。
- IDE_USE.md: 集成开发环境使用文档。
- LICENSE: 许可证文件。
- NOTICE: 通知文件。
- README.md: 项目自述文件。
- mvnw: Maven 包装器脚本。
- mvnw.cmd: Maven 包装器脚本(Windows 版本)。
- package-app.sh: 打包应用程序的脚本。
- pom.xml: Maven 项目对象模型文件。
2. 项目的启动文件介绍
项目的启动文件主要是 mvnw
和 mvnw.cmd
,这两个文件是 Maven 包装器脚本,用于在不同操作系统上运行 Maven 命令。
启动步骤
-
克隆项目:
git clone https://github.com/apache/incubator-retired-edgent-samples.git
-
进入项目目录:
cd incubator-retired-edgent-samples
-
使用 Maven 包装器脚本构建项目:
./mvnw clean package
-
运行示例:
cd topology ./run-sample.sh HelloEdgent
3. 项目的配置文件介绍
项目的配置文件主要是 pom.xml
,这是一个 Maven 项目对象模型文件,包含了项目的依赖、插件、构建配置等信息。
pom.xml
主要内容
-
项目基本信息:
<groupId>org.apache.edgent</groupId> <artifactId>edgent-samples</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging>
-
依赖管理:
<dependencyManagement> <dependencies> <dependency> <groupId>org.apache.edgent</groupId> <artifactId>edgent-bom</artifactId> <version>${edgent.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
-
插件配置:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins>