阅读:2676次   评论:0条   更新时间:2012-09-25    
创建配置项目

翻译者: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.
现在我们已经创建了项目,是时候开始我们的建模工作了。下面的章节我们讲解怎样建模。
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics