以下是我几个月前安装Wicket的逐步说明.他们列出了我在安装了Eclipse的vanilla机器上设置Wicket所做的一切.
解压缩maven到C:\ Program Files\apache-maven-3.0.1
更新的系统环境变量:
M2M2_HOMEJAVA_HOMEM2_REPO
按照Wicket快速入门的说明生成此Maven命令:
mvn archetype:create
-DarchetypeGroupId=org.apache.wicket
-DarchetypeArtifactId=wicket-archetype-quickstart
-DarchetypeVersion=1.4.1
-DgroupId=com.mycompany
-DartifactId=projName
Run Code Online (Sandbox Code Playgroud)从命令行跑过Maven命令
mvn eclipse:eclipse根据上面创建一个Eclipse项目用Eclipse导入项目到Eclipse File > Import..., Existing Projects
然Start.java在测试文件夹,发现测试程序并运行处http://localhost:8080
可选:支持第三方代码,如Wicket Extensions
手动将Wicket Extensions JAR文件添加到M2_REPO目录中将无法正常工作.
而是mvn clean dependency:copy-dependencies在更新POM后运行.(包含Wicket扩展,但在默认POM中注释掉.)然后使用Add Variables...(不Add JARs)选择M2_REPO,按下Extend,找到所需的JAR(在本例中为Wicket Extensions),在Eclipse中配置构建路径.
类似的程序应该适用于其他第三方库.
我原本打算不断更新这个网页,但是我最近一直在研究其他事情.不过,最终,我希望能够了解如何使用Tomcat配置Wicket,而不是仅仅依赖它附带的jetty服务器.
部署到Tomcat的说明如下:
下载并安装Apache Tomcat和Apache Ant.
创建以下目录结构:
\WicketTomcat
+---src
| +---main
| | +---java
| | | \---com
| | | \---HelloWicket
| | | HelloWorld.java
| | | HelloWorld.html
| | | HelloWorldApplication.java
| | \---webapp
| | \---WEB-INF
| | web.xml
| \---test
| \---java
+---lib
| junit.jar
| log4j.jar
| servlet-api.jar
| slf4j-api.jar
| slf4j-log4j.jar
| wicket.jar
| wicket-extensions.jar
+---target
build.xml
Run Code Online (Sandbox Code Playgroud)填写文件如下:
HelloWorld.java
package com.HelloWicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label("message", "Hello, Wicket!"));
}
}
Run Code Online (Sandbox Code Playgroud)
HelloWorld.html的
<html>
<head>
<title>Wicket Tomcat test title</title>
</head>
<body>
<span wicket:id="message">Message goes here</span>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
HelloWorldApplication.java
package com.HelloWicket;
import org.apache.wicket.Page;
import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication {
public HelloWorldApplication() {
}
/**
* @see org.apache.wicket.Application#getHomePage()
*/
@Override
public Class<? extends Page> getHomePage() {
return HelloWorld.class;
}
}
Run Code Online (Sandbox Code Playgroud)
web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Extremely simple example of deploying Wicket on Tomcat</display-name>
<context-param>
<param-name>configuration</param-name>
<param-value>development</param-value> <!-- Wicket mode (development or deployment) -->
</context-param>
<filter>
<filter-name>HelloWicket</filter-name> <!-- To be used in filter-mapping > filter-name below -->
<filter-class>
org.apache.wicket.protocol.http.WicketFilter
</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>
com.HelloWicket.HelloWorldApplication <!-- Fully qualified name of WebApplication class -->
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>HelloWicket</filter-name> <!-- Must match filter > filter-name above -->
<url-pattern>/*</url-pattern> <!-- Take control of all URLs that start with http://localhost:8080/HelloWicket/ -->
</filter-mapping>
</web-app>
<!--
After deploying to Tomcat, access with http://localhost:8080/HelloWicket/.
Source: http://wicket.apache.org/learn/examples/helloworld.html
-->
Run Code Online (Sandbox Code Playgroud)
build.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project default="war" name="HelloWicket" basedir=".">
<property name="final.name" value="HelloWicket" />
<property name="src.main.dir" value="src/main/java" />
<property name="src.test.dir" value="src/test/java" />
<property name="src.web.dir" value="src/main/webapp" />
<property name="lib.dir" value="lib" />
<property name="build.dir" value="target" />
<property name="build.main.classes" value="${build.dir}/classes" />
<property name="build.test.classes" value="${build.dir}/test-classes" />
<property name="build.test.reports" value="${build.dir}/test-reports" />
<property name="build.reports.dir" value="${build.dir}/reports" />
<property name="tomcat.dir" value="..\..\..\..\Program Files\Apache Software Foundation\apache-tomcat-7.0.22\webapps" />
<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="clean">
<delete dir="${build.dir}" failonerror="false" />
<delete file="${final.name}.war" failonerror="false" />
</target>
<target name="init">
<mkdir dir="${build.dir}" />
</target>
<target name="compile" depends="init">
<mkdir dir="${build.main.classes}" />
<javac destdir="${build.main.classes}" target="1.6" source="1.6" srcdir="${src.main.dir}" classpathref="build.classpath" includeantruntime="false" />
<copy todir="${build.main.classes}">
<fileset dir="${src.main.dir}">
<include name="**/*.*" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="test-compile" depends="compile">
<mkdir dir="${build.test.classes}" />
<javac destdir="${build.test.classes}" target="1.6" source="1.6" srcdir="${src.test.dir}" includeantruntime="false">
<classpath>
<path refid="build.classpath" />
<pathelement path="${build.main.classes}" />
</classpath>
</javac>
<copy todir="${build.test.classes}">
<fileset dir="${src.test.dir}">
<include name="**/*.*" />
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="test" depends="test-compile">
<mkdir dir="${build.test.reports}" />
<junit dir="./" failureproperty="test.failure" printSummary="yes" fork="true" haltonerror="true">
<sysproperty key="basedir" value="." />
<formatter type="xml" />
<classpath>
<path refid="build.classpath" />
<pathelement path="${build.main.classes}" />
<pathelement path="${build.test.classes}" />
</classpath>
<batchtest todir="${build.test.reports}">
<fileset dir="${src.test.dir}">
<include name="**/*Test*.java" />
</fileset>
</batchtest>
</junit>
<mkdir dir="${build.reports.dir}" />
<junitreport todir="${build.reports.dir}">
<fileset dir="${build.test.reports}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${build.reports.dir}" />
</junitreport>
</target>
<target name="war" depends="test">
<war destfile="${build.dir}/${final.name}.war" webxml="${src.web.dir}/WEB-INF/web.xml">
<lib dir="lib">
<include name="wicket*.jar" />
<include name="slf4j*.jar" />
<include name="log4j*.jar" />
<include name="servlet*.jar" />
</lib>
<classes dir="${build.main.classes}" />
<fileset dir="${src.web.dir}">
<include name="**/*" />
<exclude name="**/web.xml" />
</fileset>
</war>
</target>
<target name="deploy" depends="war">
<echo>Deploying .war to local Tomcat</echo>
<copy todir="${tomcat.dir}">
<fileset dir="${build.dir}" includes="${final.name}.war" />
</copy>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
正如我对原始答案所做的那样,我在这里发布了一个稍微更具解释性的答案版本,但这应该足以让你走了.
确保安装了maven2,然后转到http://wicket.apache.org/start/quickstart.html,从那里复制命令行并运行它.这应该创建一个带有演示应用程序和页面的项目,您可以在自己喜欢的IDE中导入并使用它.
| 归档时间: |
|
| 查看次数: |
7223 次 |
| 最近记录: |