Seam-gen 有两种版本:命令行脚本和IDE插件(在开发环境搭建一文中安装的Eclipse插件Jboss Tools套件中就包含着该IDE插件),但由于Seam-gen命令行版本是Ant的一个包装,通过它生成的项目不论是通过命令行还是能过IDE都可以启动,因此确定使用Seam-gen命令行版本来生成基础项目骨架。

进行Seam解压目录,存在两个脚本:seam和seam.bat,它们分别用于Linux/Unix平台和Windows平台。在命令行控制台中,输入seam help可以看seam-gen的简单概要。一般来说使用Seam-gen生成基础项目骨架只需要四步,它们分别是:

seam setup 输入项目原型和数据库信息

seam create-project 创建基础项目结构

seam generate 反向工程数据库,创建管理数据库的CRUD程序

seam explode 将应用程序部署到JBoss应用服务器

一、收集项目信息(输入项目原型和数据库信息)

Seam setup会发出一系列的问题,让seam-gen去收集它需要的信息,才能创建项目。每一个问题都由3部分组成:问题、当前值和一个有效回复列表(如果有的话)。对于每个问题,都需要输入一个回复并按回车键,然后继续下一个问题,为进入下一步收集需要的信息。

$ ./seam setup

SEAM_HOME: /opt/jboss/jboss-seam-2.2.0.GA

Using seam-gen sources from: /opt/jboss/jboss-seam-2.2.0.GA/seam-gen

Buildfile: /opt/jboss/jboss-seam-2.2.0.GA/seam-gen/build.xml

init:

setup:

[echo] Welcome to seam-gen 2.2.0.GA :-)

[echo] Answer each question or hit ENTER to accept the default (in brackets)

[echo]

//输入项目目录

[input] Enter the directory where you want the project to be created (should not contain spaces) [/home/firehare/项目/lpms] [/home/firehare/项目/lpms]

//输入JBOSS应用服务器相关信息

[input] Enter your JBoss AS home directory [/opt/jboss/jboss-5.1.0.GA] [/opt/jboss/jboss-5.1.0.GA]

[input] Enter your JBoss AS domain [default] [default]

//输入GlassFish服务器相关信息(由于我们不使用该服务,所以无需填写)

[input] Enter your GlassFish V2 or V3 home directory (Ignore if you aren't deploying to GlassFish) [/opt/glassfish/glassfish-3.0.1] [/opt/glassfish/glassfish-3.0.1]

[input] Enter your GlassFish domain (Ignore if you aren't deploying to GlassFish) [domain1] [domain1]

//输入项目名单

[input] Enter the project name [lpms] [lpms]

[echo] Accepted project name as: lpms

//采用RichFaces界面(ICEfaces界面性能好一些,但为了能够使用JBossTools插件中的RichFaces,暂用RichFaces界面)

[input] Do you want to use ICEfaces instead of RichFaces? [n] (y, [n])

[input] skipping input as property icefaces.home.new has already been set.

//选择RichFaces界面的皮肤

[input] Select a RichFaces skin [blueSky] ([blueSky], classic, darkX, deepMarine, DEFAULT, emeraldTown, glassX, japanCherry, laguna, ruby, wine)

//确定该项目是做为WAR部署

[input] Is this project deployed as an EAR (with EJB components) or a WAR (with no EJB support)? [war] (ear, [war])

//输入Java类的基包名

[input] Enter the base package name for your Java classes [com.mydomain.lpms] [com.mydomain.lpms]

cn.edu.wzu.cmet.lpms

//输入会话Beans的Java包名

[input] Enter the Java package name for your session beans [cn.edu.wzu.cmet.lpms.action] [cn.edu.wzu.cmet.lpms.action]

//输入实体Beans的Java包名

[input] Enter the Java package name for your entity beans [cn.edu.wzu.cmet.lpms.model] [cn.edu.wzu.cmet.lpms.model]

//输入测试的Java包名

[input] Enter the Java package name for your test cases [cn.edu.wzu.cmet.lpms.test] [cn.edu.wzu.cmet.lpms.test]

//输入数据库类型

[input] What kind of database are you using? [mysql] (hsql, [mysql], derby, oracle, postgres, mssql, db2, sybase, enterprisedb, h2)

//输入JDBC驱动的目录(由于使用的是linux,所以目录同windows下的不一样,Windows下直接输入mysql JDBC驱动所在的目录)

[input] Enter the filesystem path to the JDBC driver jar [/usr/share/java/mysql.jar] [/usr/share/java/mysql.jar]

[input] skipping input as property driver.license.jar.new has already been set.

[input] Enter the Hibernate dialect for your database [org.hibernate.dialect.MySQLDialect] [org.hibernate.dialect.MySQLDialect]

//输入JDBC驱动类名

[input] Enter the JDBC driver class for your database [com.mysql.jdbc.Driver] [com.mysql.jdbc.Driver]

//输入JDBC数据源类

[input] Enter the JDBC DataSource class for your database [com.mysql.jdbc.jdbc2.optional.MysqlDataSource] [com.mysql.jdbc.jdbc2.optional.MysqlDataSource]

//输入数据库JDBC URL

[input] Enter the JDBC URL for your database [jdbc:mysql://localhost:3306/lpms] [jdbc:mysql://localhost:3306/lpms]

jdbc:mysql://localhost:3306/lpms?useUnicode=true&characterEncoding=utf-8

//输入数据库用户名

[input] Enter the database username [lpms] [lpms]

//输入数据库密码

[input] Enter the database password [lpms] [lpms]

[input] skipping input as property hibernate.default_schema.entered has already been set.

[input] Enter the database catalog name (Enter '-' to clear previous value) [] []

//是否使用已有数据库

[input] Are you working with tables that already exist in the database? [y] ([y], n)

[input] Do you want to recreate the database tables and execute import.sql each time you deploy? [n] (y, [n])

[delete] Deleting: /opt/jboss/jboss-seam-2.2.0.GA/seam-gen/build.properties

[propertyfile] Creating new property file: /opt/jboss/jboss-seam-2.2.0.GA/seam-gen/build.properties

[echo] Installing JDBC driver jar to JBoss AS

init:

init-properties:

[echo] /opt/jboss/jboss-5.1.0.GA

validate-workspace:

validate-project:

settings:

[echo] JBoss AS home: /opt/jboss/jboss-5.1.0.GA

[echo] GlassFish home: /opt/glassfish/glassfish-3.0.1

[echo] Project name: lpms

[echo] Project location: /home/firehare/项目/lpms/lpms

[echo] Project type: war

[echo] IceFaces: n

[echo] Action package: cn.edu.wzu.cmet.lpms.action

[echo] Model package: cn.edu.wzu.cmet.lpms.model

[echo] Test package: cn.edu.wzu.cmet.lpms.test

[echo] JDBC driver class: com.mysql.jdbc.Driver

[echo] JDBC DataSource class: com.mysql.jdbc.jdbc2.optional.MysqlDataSource

[echo] Hibernate dialect: org.hibernate.dialect.MySQLDialect

[echo] JDBC URL: jdbc:mysql://localhost:3306/lpms

[echo] Database username: lpms

[echo] Database password: lpms

[echo]

[echo] Type './seam create-project' to create the new project

BUILD SUCCESSFUL

Total time: 1 minute 16 seconds

这样就完成了项目信息的收集工作

二、创建项目结构(创建基础项目结构)

setup命令只是为seam-gen做好创建项目的准备。真要让seam利用模板生成一个项目,还需要执行sean create-project命令。这样seam将创建一个新的项目,并将配置好该项目的一切,同时还配有一个基于Ant构建的,用于编译、测试、打包和部署的应用程序。

三、创建CRUD程序(项目反向工程数据库,生成管理数据库的CRUD程序)

有了基础的项目骨架之后,就可以进行部署了。但如果是基于已有数据库的话,可以先对数据库进行反向工程,使用seam generate命令可以从一个已有数据库的Schema生成JPA实体类,并生成用来管理这些实体的CRUD用户接口。这些实体在Facelets视图模板中渲染,并且为JavaBean动作类所支持。这样就很方便地构建出了应用程序的原型。

四、项目部署(将应用程序部署到JBoss应用服务器)

应用程序的原型构建好之后,为了让该应用程序启动,需要将其部署到JBoss应用服务器中,在这里为了能够对应用程序进行热部署,使用seam explode命令来进行部署,这样在应用程序更改之后,可以通过重新运行seam explode来进行重新部署(增量热部署)。

本文转自 firehare 51CTO博客,原文链接:http://blog.51cto.com/firehare/586520,如需转载请自行联系原作者

使用Seam-gen生成基础项目骨架相关推荐

  1. Seam的好帮手 - Seam Gen 生成工具

    Seam Gen是什么 Seam Gen(也叫seam)用来生成seam框剪使用的代码,seam.bat(Windows)和seam(Linux/Unix)使用Ant来生成Seam工程和源代码,使用S ...

  2. (转)Maven之自定义archetype生成项目骨架

    背景:最近在开发一个项目的基础构件,在以后项目的开发过程中可以直接使用该构件快速的生成项目骨架进行开发. 摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其 ...

  3. Maven之自定义archetype生成项目骨架(一)

    摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其中的一个插件:maven-archetype-plugin ,通过该插件可以自定义符合我们自己需求的arc ...

  4. 1.豆豆项目搭建之springboot集成mybatis-plus(包含mybatis-plus自动生成基础代码)

    1.项目版本说明 组件 版本 说明 springboot 2.4.2 是为了后面集成cloud2020.0.0 和 cloud-alibaba2021.1 版本 mybatis-plus 3.4.3. ...

  5. maven生成项目骨架时报错ResourceManager : unable to find res

    生成骨架时生成archetype.xml脚本 问题描述:没有方法通过*号批量匹配文件 [INFO] -------------------------------------------------- ...

  6. 简单介绍基于Spring Boot的项目骨架使用

    前言 从大学开始接触 java 后台开发,到后来了解了更多的编程语言的开发.发现 java 的开发可以说是相较而言很复杂的了,光是 Spring MVC 的配置要是没有经历系统的学习,可能就能劝退一波 ...

  7. 建立和使用Maven项目骨架Archetype

    什么是Maven Archetype? 简单的说就是一个Maven项目的基础模板,利用这个模板我们就可快速的建立一个新的该类型项目,同时也可以建立自己的项目骨架. Maven所提供的archetype ...

  8. 好码推荐-一个符合我口味的SpringBoot(2.0.5)+MybatisPlus(3.0.7)项目骨架

    SpringBoot(2.0.5)+MybatisPlus(3.0.7)项目骨架,支持SpringSecurity+JWT权限验证,整合Redis+MongoDB+RabbitMQ+Elasticse ...

  9. SpringBoot+Dubbo分布式SOA项目骨架搭建(二)

    SpringBoot+Dubbo分布式SOA项目骨架搭建 项目介绍 本项目是来自于上一篇文章http://blog.csdn.net/songxinjianqwe/article/details/77 ...

最新文章

  1. html响应式布局media,JS中使用media实现响应式布局
  2. “万能钥匙”可以打开大脑:脑刺激个性化医疗的新领域
  3. 1.1 VMware 一步一步创建虚拟机
  4. Centos添加其他yum源
  5. 前端页面可视化设计工具
  6. PythonWeb仿51edu项目实战篇视频教程教学视频
  7. python importlib_importlib --- import 的实现 — Python 3.10.0a2 文档
  8. 华为HCIE7-中间系统到中间系统的路由泄露、防环、认证和优化机制
  9. Python数据分析Numpy库方法简介(一)
  10. 微信退款异步通知解密异常-填充无效,无法被移除
  11. Docker 之MySQL 重启,提示Error response from daemon: driver failed programming external connectivity on **
  12. WORD中编辑页码方法大全
  13. 直流DC稳压降压电源模块芯片简单对比
  14. 11-linux文件操作
  15. 免费公益云服务器主机推荐
  16. c语言fgetc函数_C语言中的fgetc()函数与示例
  17. 构造方法的作用和特点
  18. PS制作咖啡闹钟、故障文字
  19. PHP 使用 hprose RPC 服务 系列文章之二——Codeigniter3中使用Hprose
  20. 阿里技术出品:高可用的本质!

热门文章

  1. java8 LocalDate获取自然周的方法
  2. 1083. Windy数
  3. mysql数据库的封装
  4. 做自媒体,不用露脸拍视频,方法都在这篇文章
  5. scrapy爬虫入门
  6. 微信闪退的修复方法分享
  7. Bootstrap自定义上传文件图标样式并使用ajax及formData进行上传
  8. java性能调优指南,就是这么简单
  9. Zbrush学习笔记
  10. 【开发应该了解的Web文件下载】