[使用手册] AndroMDA生成SSH架构系统快速入门手册(7)
CshBBrain
2010-01-16
创建配置项目
翻译者:Jason S.H.Chen (英文地址:http://www.andromda.org/index.php?option=com_content&view=article&id=107:starter-app&catid=42:getting-started-java&Itemid=89) 创建项目 在本节,我们将使用AndroMDA开始应用系统的构建,后面我们将在此基础上逐步添加完成所有的功能。我强烈建议你保留前面章节下载的完成的可运行的日志跟踪系统,以便必要时,可建你自己正在开发的系统和他进行比照。 开始构建系统前的最后一个忠告:务必仔细正确地一步一步按照下面讲的步骤进行,不要期望有什么其他的捷径(因为就是捷径,呵呵)。手册后面安排的每个步骤都有他自身的理由,这些步骤足够保证你顺利完成系统的开发。 好的,我们已经整装待发了。按照下面的步骤开始我们的系统开发工作吧: 1. 开启DOS窗口,并将DOS窗口的当前目录切换到你希望应用系统生成到的那个目录。这里,这里我们选择c盘,应用系统将被创建到c:\ timetracker这个目录。注意:如果你打算将应用系统创建到不同的目录下,确保在整个文件路径中没有空白符(空格以及其他一些不可见的空白符),否则maven会出问题。 2. 执行下面的命令生成项目。严格按照下面红色标注的答案回答系统的提问。 C:\>mvn org.andromda.maven.plugins:andromdapp-maven-plugin:3.3:generate [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'andromdapp'. [INFO] ---------------------------------------------------------------------------- [INFO] Building Maven Default Project [INFO] task-segment: [andromdapp:generate] (aggregator-style) [INFO] ---------------------------------------------------------------------------- [INFO] [andromdapp:generate] INFO [AndroMDA] discovered andromdapp type --> 'richclient' INFO [AndroMDA] discovered andromdapp type --> 'j2ee' Please choose the type of application to generate [richclient, j2ee] j2ee Please enter the location in which your new application will be created (i.e. f:/java/development): C:/(这里你可以输入你希望项目产生到的目录) Please enter your first and last name (i.e. Chad Brandon): Naresh Bhatia(输入你自己的名字) Which kind of modeling tool will you use? [uml1.4, uml2, emf-uml2]: Use the list below to enter the correct choice: ArgoUML: uml1.4 MagicDraw 9.x: uml1.4 MagicDraw 15.5: uml2 RSM 6: emf-uml2 uml1.4 Please enter the name of your J2EE project (i.e. Animal Quiz): TimeTracker Please enter an id for your J2EE project (i.e. animalquiz): timetracker Please enter a version for your project (i.e. 1.0-SNAPSHOT): 1.0-SNAPSHOT Please enter the root package name for your J2EE project (i.e. org.andromda.samples.animalquiz): org.andromda.timetracker Would you like an EAR or standalone WAR? [ear, war]: ear Please enter the type of transactional/persistence cartridge to use [hibernate, ejb, ejb3, spring, none]: spring Please enter the Spring version to use (enter '1' for 1.x or '2' for 2.x) [1, 2]: 2 Please enter the database backend for the persistence layer [hypersonic, mysql, oracle, db2, informix, mssql, pointbase, postgres, sybase, sabdb, progress, derby]: mysql Will your project need workflow engine capabilities? (it uses jBPM and Hibernate3)? [yes, no]: no Will your project have a web user interface? [yes, no]: yes Would you like your web user interface to use JSF or Struts? [jsf, struts]: struts Would you like to be able to expose your services as web services? [yes, no]: no ------------------------------------------------------------------------------------- G e n e r a t i n g A n d r o M D A P o w e r e d A p p l i c a t i o n ------------------------------------------------------------------------------------- Output: 'file:/C://timetracker/app/pom.xml' Output: 'file:/C://timetracker/app/src/main/application/META-INF/jboss-app.xml' Output: 'file:/C://timetracker/app/src/main/config/timetracker-ds.xml' Output: 'file:/C://timetracker/common/pom.xml' Output: 'file:/C://timetracker/core/target/classes/META-INF/ejb-jar.xml' Output: 'file:/C://timetracker/core/pom.xml' Output: 'file:/C://timetracker/mda/pom.xml' Output: 'file:/C://timetracker/mda/src/main/config/andromda.xml' Output: 'file:/C://timetracker/mda/src/main/config/mappings/WebMergeMappings.xml' Output: 'file:/C://timetracker/mda/src/main/uml/timetracker.xmi' Output: 'file:/C://timetracker/pom.xml' Output: 'file:/C://timetracker/readme.txt' Output: 'file:/C://timetracker/web/pom.xml' Output: 'file:/C://timetracker/web/src/main/properties/messages.properties' Output: 'file:/C://timetracker/web/target/timetracker-web-1.0-SNAPSHOT/WEB-INF/web.xml' ------------------------------------------------------------------------------------- New application generated to --> 'file:/C://timetracker/' Instructions for your new application --> 'file:/C://timetracker/readme.txt' ------------------------------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3 minutes 45 seconds [INFO] Finished at: Sat May 20 21:47:51 EDT 2006 [INFO] Final Memory: 9M/22M [INFO] ------------------------------------------------------------------------ C:\> 运行完命令,到项目生成的目录,你可以看到多个AndroMDA创建的目录。你可能会注意到有些目录下面有名为pom.xml的文件。生成的项目文件夹结构如下: timetracker | |-- mda | |-- common | |-- core | |-- web | +-- app timetracker:系统的主控项目,控制系统的全部构建过程和通用构建属性设置。 Mda:mda项目是系统最重要的子项目。日志跟踪系统的UML模型就在src/main/uml下面,在这个项目下也可以配置系统需要的一些资源。 Common:common子项目中的资源和类都是其他子项目可以共享的。主要包含VO对象。 Core:core子项目下的资源和类都是和spring,hibernate,ejb相关的。包括实体类,数据访问对象,hibernate映射文件和服务类。 Web:web子项目下面资源和类都是表现层的组件。 App:app子项目下面的资源和类用于构建.ear包。 你想要更详细的了解相关信息,请参考timetracker目录下的readme.txt文件。这个文件也描述了项目相关的maven命令。事实上,开发员经常会参考这个文件中的maven命令。自己打开这个文件先熟悉一下吧。 调整配置 下面我们将对AndroMDA产生的项目的配置做小幅的调整以适应具体的项目构建;在调整这些配置的同时,我们会给你说明每一项配置调整的原因。 打开位于timetracker\mda\src\main\config\目录下的andromda.xml文件。做如下修改: 1. 搜索“enableSpringTransactionsWhenEjbsEnabled”属性,并将他的取值由“true”改为“false”。因为我们将使用EJB.我们不打算使用Spring来管理数据库事务。 2. 搜索“bpm4struts”名字空间。在bpm4struts名字空间中添加一个日期格式属性以改变默认的日期格式(默认的日期格式和原型中的日期格式不同)。该属性以及取值如下:<property name="defaultDateFormat">MM/dd/yyyy</property> 3. 在bpm4struts名字空间中添加另外一个属性,如下:<property name="normalizeMessages">true</property> 该属性允许产生最小数量的资源,当系统中有2个相同名字的元素时,只产生一个资源。该选项默认是关闭的,目的是为了和先前的版本兼容。 4. 保存并关闭andromda.xml文件。 打开位于项目根部目录timetracker下的pom.xml文件,做如下修改: 1. 查找下面的文本行,下面的文本行主要用于描述应用系统所使用的JDBC驱动: <jdbc.driver.jar>${jboss.home}/server/default/lib/hsqldb.jar</jdbc.driver.jar> 因为我们使用的是MySQL,所以要将文本行的内容修改为如下所示(确保那你所指定的驱动的版本号准确无误): <jdbc.driver.jar>${jboss.home}/server/default/lib/mysql-connector-java-5.0.4.jar</jdbc.driver.jar> 2. 查找如下2行文本行,这两行分别指定系统所使用的数据库的用户名和密码: <jdbc.username>sa</jdbc.username> <jdbc.password></jdbc.password> 将数据库用户名和密码修改为我们先前创建的数据库用户和密码: <jdbc.username>timetracker</jdbc.username> <jdbc.password>timetracker</jdbc.password> 3. 查找<repositories>文本片段。在这里你会找到一个AndroMDA所使用的仓库定义。添加一个Java.net的仓库定义。Java.net仓库定义被用于下载Sun公司提供的jar文件(比如jta.jar等)。添加Java.net库定义后的<repositories>文本片段如下: <repositories> <repository> <id>andromda</id> <name>AndroMDA Repository</name> <url>http://team.andromda.org/maven2</url> </repository> <repository> <id>maven2-repository.dev.java.net</id> <name>Java.net Repository for Maven 2</name> <url>https://maven2-repository.dev.java.net/nonav/repository</url> <layout>default</layout> </repository> </repositories> 保存并关闭pom.xml文件。 打开位于mda子项目目录timetracker\mda下的pom.xml文件,做如下调整: 1. 查找名为“hibernate.db.showSql”的属性,并将其取值由“true”改为“false”。这将使冗长的Hibernate SQL语句信息不再输出到JBoss控制台。我们希望Hibernate SQL语句信息输出到JBoss日志文件中,这里是这些信息输出的最佳位置。 2. 保存并关闭pom.xml文件。 打开位于app子项目目录timetracker\app\下的pom.xml文件。做如下修改: 1. 查找如下文本行,该文本行用于描述maven ear插件的版本号: <artifactId>maven-ear-plugin</artifactId> <version>2.1</version> 为了兼容最新版本的JBoss应用服务器,需要将maven ear 插件的版本改为2.3: <artifactId>maven-ear-plugin</artifactId> <version>2.3</version> 2. 保存并关闭pom.xml. 现在我们已经创建了项目,是时候开始我们的建模工作了。下面的章节我们讲解怎样建模。 |
|
crackajackk
2010-01-28
怎么不写了啊 。。
|