使用 Google Sitebricks 构建更好的 Web 应用程序(2)
 
- UID
- 1066743
|

使用 Google Sitebricks 构建更好的 Web 应用程序(2)
使用 Maven 创建 Sitebricks 应用程序像众多现代 Java 框架一样,Sitebricks 使用 Maven。许多框架使用 Maven 的原型系统来构建新项目。这也是 Sitebricks 的计划,但在撰写本文时,Maven 还不可用。本文的示例中更多地采用手动方法。您将遵循 Maven 最佳实践,首先创建一个业务逻辑项目,如清单 1 中所示。
清单 1. 使用 Maven 创建一个业务逻辑项目1
2
| $ mvn archetype:create -DgroupId=org.developerworks.reviewr -DartifactId=reviewrMain
[INFO] Scanning for projects...
|
这段代码创建了一个简单的项目结构,是 Java 应用程序的典型特征,最终会被打包成 JAR 文件。下一步就是创建第二个项目,即下面所示的 Web 应用程序。
清单 2. 使用 Maven 创建一个 Java Web 应用程序1
2
3
| $ mvn archetype:create -DgroupId=org.developerworks.reviewr -
DartifactId=reviewrWeb -DarchetypeArtifactId=maven-archetype-webapp
[INFO] Scanning for projects...
|
这与 类似,不过这一次提供了 maven-archetype-webapp 的原型 ID。它是 Maven 中的一个核心原型,可创建一个基本的 Java Web 应用程序项目。创建好项目之后,打开 pom 文件以向其添加 Sitebricks。首先为 main 业务逻辑项目执行该操作,如清单 3 所示。
清单 3. Main 项目的 pom.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| <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/
maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.developerworks.reviewr</groupId>
<artifactId>reviewrMain</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>reviewrMain</name>
<url>http://maven.apache.org</url>
<repositories>
<repository>
<id>sonatype-google-snapshots</id>
<name>Sonatype Google Snapshots Repository</name>
<url>http://oss.sonatype.org/content/repositories/
google-snapshots/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.sitebricks</groupId>
<artifactId>sitebricks</artifactId>
<version>0.8-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.2.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
|
这个 pom 文件是对 中生成的原始文件进行了多处修改而生成的。
- 您已经添加了一个资源库 http://oss.sonatype.org/content/repositories/google-snapshots/,在这里可以找到 Sitebricks 和 Guice 的 Maven 工件。
- 在依赖项部分,您添加了两个依赖项:
- Sitebricks 的一个依赖项,它会引入项目所需的所有 Sitebricks JARs。
- Apache Derby 上的一个依赖项,它是本项目中用到的数据库。Derby 是一个嵌入式数据库,属于 Java 6 的一部分。从该依赖项中得到的主要是 Derby 需要的嵌入式 JDBC 驱动器。
Web 应用程序项目的 pom 文件如下所示。
清单 4. Web 应用程序的 pom.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| <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/
maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.developerworks.reviewr</groupId>
<artifactId>reviewrWeb</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>reviewrWeb Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.developerworks.reviewr</groupId>
<artifactId>reviewrMain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<finalName>reviewrWeb</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
|
清单 4 显示了一些小的修改。其中添加了 main 项目上的一个依赖项,这会引入在 main 项目中编写的代码以及 main 项目上的所有依赖项(包括 Sitebricks 上的依赖项)。您还可以添加一个 Jetty 插件,从而可以启动嵌入式 Jetty Web 服务器并在其上运行应用程序。项目构建好之后,就可以开始使用 Sitebricks 了。 |
|
|
|
|
|