- 浏览: 111756 次
- 性别:
- 来自: 北京
最新评论
-
bo_hai:
请问:这样配置可以解决事务回滚的问题吗?
基于spring和ibatis的多数据源切换方案 -
rockydang:
多谢分享。
第一个配置文件中有一块配置错了,估计是手误啊
...
基于spring和ibatis的多数据源切换方案 -
chao121:
[*]啊顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶121 ...
征求方案-关于多个excel,大数据量同时导入 -
jitabc:
效果很不错。
为spring2.5中的jpetstore增加perf4j监控 -
徐风子:
<p>原题来自:http://projecteul ...
一道软件面试题
上一篇,说到了ant脚本如何分类以及何组织的,现在让我们看一下如何用ant脚本来实现上面所说的过程。
在此同样先是基于小的分类,然后是整合,其实按照上篇的分类是非常细的,因此对于一些经常用到的,在此就不赘述,仅说几个我认为不常用的,但是很关键的。
首先定义weblogic的相关ant任务
<path id="weblogic.ant.classpath">
<pathelement location="${weblogic.home}/server/lib/weblogic.jar"/>
</path>
<target name="init" description="">
<taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer" classpathref="weblogic.ant.classpath"/>
<taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig" classpathref="weblogic.ant.classpath"/>
<taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy" classpathref="weblogic.ant.classpath"/>
</target>
然后是weblogic的启动与关闭,此处并没有通过wlserver来进行weblogic的startup与shutdown,是因为在我的环境里面总是报错,实在解决不了了,就采用了如下的这种替代方案。
<target name="startup">
<echo message="-------- Starting Weblogic AdminServer -----"/>
<exec executable="${domain.home}/startWebLogic.sh">
</exec>
<echo message="${weblogic.adminserver} started successfully"/>
</target>
<target name="shutdown">
<echo message="-------- Shutdown Weblogic server --------"/>
<exec executable="${domain.home}/bin/stopWebLogic.sh"/>
<sleep seconds="20" />
</target>
接下来是创建weblogic domain
<target name="create-test" depends="init" description="">
<echo message="--------Create weblogic domain:odmain--------"/>
<delete dir="${domain.home}"/>
<mkdir dir="${domain.home}"/>
<wlserver
weblogichome="${weblogic.home}"
username="${weblogic.username}"
password="${weblogic.password}"
servername="${weblogic.adminserver}"
domainname="${domain.name}"
dir="${domain.home}"
host="${weblogic.host}"
port="${weblogic.port.adminserver}"
productionmodeenabled="${weblogic.domain.isproduction}"
generateconfig="true"
classpath="${weblogic.jar}:${java.home}/lib/tools.jar">
<jvmarg value="-server"/>
<jvmarg value="-Xms256m"/>
<jvmarg value="-Xmx512m"/>
<jvmarg value="-XX:PermSize=128m"/>
<jvmarg value="-XX:MaxPermSize=256m"/>
<jvmarg value="-Dweblogic.ThreadPoolPercentSocketReaders=75"/>
<jvmarg value="-Djava.security.policy=${weblogic.home}/server/lib/weblogic.policy"/>
</wlserver>
</target>
再接下来是配置weblogic domain
<target name="config-test" description="Add Weblogic domain DB/JMS configurations" depends="init">
<echo message="--------Config all domain weblogic resources--------"/>
<mkdir dir="${domain.home}/rmfilestore"/>
<wlconfig url="t3://${weblogic.host}:${weblogic.port.adminserver}"
username="${weblogic.username}" password="${weblogic.password}">
<query domain="${domain.name}" type="Server" name="${weblogic.adminserver}"
property="prop.admin.server"/>
<create type="JDBCConnectionPool" name="Test Connection Pool">
<set attribute="InitialCapacity" value="${jdbc.pool.initcapacity}"/>
<set attribute="CapacityIncrement" value="1"/>
<set attribute="MaxCapacity" value="${jdbc.pool.maxcapacity}"/>
<set attribute="DriverName" value="${oracle.driver}"/>
<set attribute="Properties" value="user=${oracle.username.core2}"/>
<set attribute="Password" value="${oracle.password.core2}"/>
<set attribute="TestConnectionsOnRelease" value="true"/>
<set attribute="TestConnectionsOnReserve" value="true"/>
<set attribute="URL" value="${oracle.url.core2}"/>
<set attribute="TestTableName" value="SQL SELECT 1 FROM DUAL"/>
<set attribute="Targets" value="${prop.admin.server}"/>
</create>
<create type="JDBCDataSource" name="Test Data Source">
<set attribute="JNDIName" value="${datasource.jndi.name.test}"/>
<set attribute="PoolName" value="Test Connection Pool"/>
<set attribute="Targets" value="${prop.admin.server}"/>
</create>
<create type="JMSConnectionFactory" name="jms/JMSConnectionFactory">
<set attribute="JNDIName" value="jms/JMSConnectionFactory"/>
<set attribute="XAConnectionFactoryEnabled" value="true"/>
<set attribute="DefaultDeliveryMode" value="Non-Persistent"/>
<set attribute="Targets" value="${prop.admin.server}"/>
</create>
<create type="JMSFileStore" name="TestPersistentStore" property="test.persist.store">
<set attribute="Directory" value="rmfilestore"/>
</create>
<create type="JMSFileStore" name="TestPagingStore" property="test.paging.store">
<set attribute="Directory" value="rmfilestore"/>
</create>
<create type="JMSServer" name="TestJMSServer">
<set attribute="Store" value="${test.persist.store}"/>
<set attribute="PagingStore" value="${test.paging.store}"/>
<set attribute="Targets" value="${prop.admin.server}"/>
<create type="JMSQueue" name="jms/TestQueue">
<set attribute="JNDIName" value="jms/TestQueue"/>
</create>
<create type="JMSTopic" name="jms/TestTopic">
<set attribute="JNDIName" value="jms/TestTopic"/>
</create>
</create>
</wlconfig>
</target>
再接下来是deploy
<target name="deploy-test" depends="init">
<echo message="--------Deploy all odomain war and ear--------"/>
<wldeploy action="deploy" source="${deploy.package.folder}/od/test.ear" name="test"
user="${weblogic.username}" password="${weblogic.password}" verbose="true" nostage="false"
adminurl="t3://${weblogic.host}:${weblogic.port.adminserver}" targets="${weblogic.adminserver}">
</wldeploy>
<wldeploy action="deploy" source="${deploy.package.folder}/od/portal.war" name="portal"
user="${weblogic.username}" password="${weblogic.password}" verbose="true" nostage="false"
adminurl="t3://${weblogic.host}:${weblogic.port.adminserver}" targets="${weblogic.adminserver}"/>
</target>
最后,findbugs
<target name="findbugs-test">
<findbugs home="${findbugs.home}"
output="xml"
outputFile="findbugs/findbugs-test.xml"
jvmargs="-Xmx640m">
<auxClasspath>
<fileset dir="${basedir}/test/lib" >
<include name="*.jar" />
</fileset>
<pathelement location="${emma.jar}" />
</auxClasspath>
<sourcePath path="${basedir}/test/src" />
<class location="${basedir}/test/dist/classes" />
</findbugs>
</target>
有了这些分类以后,我们就简单得按照上篇的想法来进行组织,此处仅组织持续集成的,项目创建的根据各自不同可以自己组织。
<target name="ci" description="">
<antcall target="build-test"/>
<antcall target="findbugs-test"/>
<parallel>
<antcall target="startup"/>
<sequential>
<waitfor maxwait="5" maxwaitunit="minute" checkevery="1" checkeveryunit="second">
<http url="http://${weblogic.host}:${weblogic.port.adminserver}"/>
</waitfor>
<antcall target="integration-test"/>
<antcall target="shutdown"/>
</sequential>
</parallel>
</target>
发表评论
-
ANT通过sshexec启动weblogic一直不能退出的解决方案
2009-11-24 16:44 3349通常我们通过sshexec来启动weblogic(其他服务器也 ... -
基于cactus和StrutsTestCase容器内测试struts1.2应用
2009-09-01 10:01 1996背景 我们 ... -
测试配置为连接数据源单独的jar
2009-08-31 09:46 1074问题描述 以前我们做的项目基于未来 ... -
软件测试周期中各种类型的概念汇总
2009-08-19 16:03 1510之前做持续集成环境时 ... -
maven2使用技巧集合(收集)
2009-07-28 22:45 14371.打包时,不在META-INF中生成maven目录 ... -
使用maven2管理spring2.5项目(基于Jpetstore Demo)
2009-07-27 16:31 3596目的:spring好久没有系统的学习了,借这个机会重新学习一下 ... -
teamcity 5.0 EAP 发布了!
2009-07-24 11:25 1543teamcity的维护更新太快了,几周时间就经历了三个版本了, ... -
基于teamcity的持续集成实践(当前不足)
2009-07-24 11:15 1519持续集成到现在基本上是一个可持续运行的环境了,当然还需要完善。 ... -
基于teamcity的持续集成实践(单元测试)
2009-07-23 17:23 1209单元测试,是一种直接面向生产代码的测试,是一种白盒测试。 ... -
基于teamcity的持续集成实践(集成测试)
2009-07-23 15:48 1204我在此所说的集成测试其实就是项目对外的接口测试,包括http接 ... -
基于teamcity的持续集成实践(findbugs)
2009-07-23 14:20 1213FindBugs 是一个静态分析工具,它检查类或者 JAR 文 ... -
基于teamcity的持续集成实践(emma)
2009-07-23 10:35 1643emma是一个统计代码测试覆盖率的工具,teamcity默认集 ... -
基于teamcity的持续集成实践(ant脚本1)
2009-07-22 23:12 1340使用ant来进行构建,最重要的就是脚本的组织,下面我们将con ... -
基于teamcity的持续集成实践(配置)
2009-07-22 14:43 3552本章节仅覆盖svn上的一个简单项目,集成测试覆盖率、代码质量检 ... -
基于teamcity的持续集成实践(安装)
2009-07-21 23:02 2129准备的基础环境是 1。操作系统hp-unix,teamcit ... -
基于teamcity的持续集成实践(简单介绍)
2009-07-21 16:11 2498持续集成Continuous Integration,一句话概 ...
相关推荐
TeamCity是一款强大的持续集成(CI)/持续部署(CD)工具,它可以帮助开发团队自动构建、测试和部署软件。在TeamCity中,Ant脚本扮演着至关重要的角色,因为Ant是Java项目常用的构建工具,能够定义和执行构建过程。...
9. **持续集成**:在实际开发中,Ant常与持续集成服务器(如Jenkins、TeamCity)配合使用,自动执行构建、测试和部署流程,提高开发效率和产品质量。 总结,Ant作为Java开发中的重要工具,其在打包Web工程中的应用...
- Ant脚本可以集成到持续集成工具(如Jenkins、TeamCity)中,自动化构建和测试过程。 10. **最佳实践**: - 保持构建脚本简洁清晰,避免过于复杂的嵌套和条件。 - 将配置信息与脚本分离,便于维护和重用。 - ...
10. **ANT与持续集成**:如果博文深入,可能会提到ANT在持续集成服务器如Jenkins或TeamCity中的应用。 通过学习和实践ANT自动化构建,开发者可以有效地管理项目的构建流程,提高开发效率,保证代码的一致性和可重复...
你可以使用持续集成服务器,如Jenkins、TeamCity或Bamboo,配置它们在每天固定的时间自动运行NAnt脚本。这样,每当有新的代码提交时,系统就会自动进行编译和测试,确保代码质量。 ### 提高构建效率 - **编译优化**...
- **TeamCity**: JetBrains开发的CI服务器。 ##### 2.5 配置管理工具 - **Chef**: 基础设施即代码工具,用于自动化配置管理。 - **Puppet**: 通过定义资源状态来管理服务器配置。 - **Ansible**: 无需在目标机器上...
通过它们,可以轻松地运行整个Selenium测试套件,甚至集成到持续集成(CI)环境中,如Jenkins或TeamCity,从而在每次代码变更后自动执行测试,确保代码质量。 总结起来,Selenium和TestNG的结合使用提供了强大的Web...
2. 持续集成:通过Jenkins、TeamCity、Team Foundation Server等工具实现代码集成、编译和测试,及时发现并修复问题。 3. 第三方持续集成服务:考虑DaoCloud Services、CloudBees DEV@cloud、Travis CI或CircleCI等...
- Gradle可以很好地与其他开发工具集成,如IDEs(IntelliJ IDEA、Eclipse)、持续集成服务器(Jenkins、TeamCity)等。 - 支持生成各种格式的构建报告,如HTML、XML等,方便团队协作。 #### 三、Gradle的基本概念...
5. **持续集成**:在持续集成工具(如Jenkins、TeamCity)中,利用Groovy插件与MSBuild集成,实现自动化的构建和部署。 总之,MSBuild提供了强大的.NET项目构建能力,而Groovy的灵活性和便利性则可以进一步增强和...