- 浏览: 154727 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
追求幸福:
每增加一个新的activity, 都要为这个activity指 ...
关于setContentView -
雨过天晴0521:
感谢第一位留言的网友, 我会坚持下去
ADB push的用法 -
小光棍:
謝謝。整理出來的東西真有用!!
ADB push的用法
在java6中内置了一个javascript的engine:
Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is embedded in J2SE 6 as the default Java scripting engine.
应用场景1.
在工作中, 我遇到了这样一个应用场景. 调用ant时传的属性参数中有连接数据库的密码, 在log中会显示出来, 如果将密码加密, 那么又会报数据库端的验证错误, 说不认这个经过加密的密码. 怎么办, 有两种方法, 一个是用java写自定义的ant task来解密传给ant script的密码. 然后用明文密码来连接数据库. 写java的缺点在于每次都要事先编译好这个ant task. 还有一种方法是在ant script写一个javascript task. 当然javascript可以调用java的解密函数, 这样不用每次运行ant script前都编译task. 具体脚本如下:
输出
05/25/12 18:46:55.406 INFO: [ProcessWrapper] Executing: D:\build\fabric\DSEngine\resources\win32\wrappid.exe,D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\antcall.pid,D:/build/fabric/DSEngine/work/yangxiaoming-lt-1/tibcoamx/tibcojre/1.6.0/bin/java,-cp,D:/build/fabric/DSEngine/work/yangxiaoming-lt-1/tibcoamx/tools/lib/antpackage.jar,org.apache.tools.ant.launch.Launcher,-f,D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\scripts\cleanupDDL\cleanupDB.xml,-Dadmin.db.password=#!Panbl6s1FhkBUM70G9T+okR+fv5Nwoq+fYUx+SLzZi8=,-Dadmin.db.url=jdbc:sqlserver://192.168.71.99:1433;databasename=amxdb,-Dadmin.db.username=sa,-Ddb.ddl.path=mssql300,-Ddb.driver.path=D:\build\fabric\DSEngine\work\yangxiaoming-lt-1/fabric/mssql2008_driver,-Dtibco.home=D:/build/fabric/DSEngine/work/yangxiaoming-lt-1/tibcoamx,-Dadmin.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver,cleanup.db.logging,
05/25/12 18:46:55.609 INFO: [ProcessWrapper] [STDOUT] Buildfile: D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\scripts\cleanupDDL\cleanupDB.xml
05/25/12 18:46:55.875 INFO: [ProcessWrapper] [STDOUT]
05/25/12 18:46:55.875 INFO: [ProcessWrapper] [STDOUT] replace.db.password:
05/25/12 18:46:55.984 INFO: [ProcessWrapper] [STDOUT] [script] log4j:WARN No appenders could be found for logger (com.tibco.security.TIBCOSecurity).
05/25/12 18:46:55.984 INFO: [ProcessWrapper] [STDOUT] [script] log4j:WARN Please initialize the log4j system properly.
05/25/12 18:46:56.500 INFO: [ProcessWrapper] [STDOUT] [echo] Tibc02008
05/25/12 18:46:56.500 INFO: [ProcessWrapper] [STDOUT]
05/25/12 18:46:56.500 INFO: [ProcessWrapper] [STDOUT] cleanup.db.logging:
05/25/12 18:46:56.687 INFO: [ProcessWrapper] [STDOUT] [sql] Executing resource: D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\scripts\cleanupDDL\mssql300\drop_commonlogging.ddl
05/25/12 18:46:56.687 INFO: [ProcessWrapper] [STDOUT] [sql] 0 rows affected
05/25/12 18:46:56.687 INFO: [ProcessWrapper] [STDOUT] [sql] 1 of 1 SQL statements executed successfully
05/25/12 18:46:56.703 INFO: [ProcessWrapper] [STDOUT]
05/25/12 18:46:56.703 INFO: [ProcessWrapper] [STDOUT] BUILD SUCCESSFUL
05/25/12 18:46:56.703 INFO: [ProcessWrapper] [STDOUT] Total time: 1 second
在ant中使用javascript, 在javascript又调用了java, 所以一定要注意数据的boxing和unboxing. 比如用java的方法返回decryptedPassword 时, 它其实已经被unboxing了, 失去了java的char[]类型, 但内在传递的值是不变的, 所以我们需要对它重新boxing, 让它成为java的String类型, 在boxing他的char[]值同时解码, 获得实际字符串, 也就是明文. 再将它传递给javascript的变量.
换句话说, 有的情况js和java的函数相同, 如果var的类型不明显,javascript引擎不知该调用哪个方法, 建议用var input = new String(strInput)
应用场景2.
在工作当中我遇到了这样一种情况, 安装时需要选择administration, runime host这样的安装profile, 这两者是交集. 我们的目的是想以administration里的所有assembly names作为exclude的对象, 在安装runtime host时加以过滤. 从而保留runtime host独有的assemblies.
注意以下问题
1.在这段脚本中:
初看可能会疑惑, targetos为什么标称unix呢? 其实是想和后面的pluginspath="${installation.root}/components/shared/1.0.0/features" featurespath="${installation.root}/components/shared/1.0.0/plugins" 兼容, 如果是没有targetos, 默认的情况下就会根据所在的平台自己判断, 如果在windows上, ${file.separator}就会成为'\', 这样与后面的没办法匹配, 也就过滤失败. 其实ant或者直接说java里都用'/'作为文件分隔符, 即使pluginspath和featurespath里用的是'\'也一样会失败的.
还有人可能会有疑问, pathsep的分隔符为什么要用'${file.separator}**,',而不是',' 原因是我们收集的文件集合里有的是文件夹, 有的是文件, 文件夹必须用'**/文件夹/**过滤', 文件用'**/文件', 而文件用'**/文件/**'也没有问题, 为了把两者都一次性过滤, 所以都用'**/文件或文件夹/**'来过滤.
2. 在<![CDATA[]]>中, 我们可以用javascript和java代码来完成自定义task, 但js和java混用的话,函数又类似的时候可能会混淆编译器. 所以建议要么用javascript, 要么用java的函数, 用java之前最好把js的字符串用new java.lang.String();转化一下, 比如var text = new java.lang.String(attributes.get("text"));
具体可以参考下这篇文章:
https://developer.mozilla.org/zh_tw/Core_JavaScript_1.5_%E6%95%99%E5%AD%B8/LiveConnect_%E6%A6%82%E8%A6%81/%E8%B3%87%E6%96%99%E9%A1%9E%E5%9E%8B%E7%9A%84%E8%BD%89%E6%8F%9B/%E5%BE%9E_JavaScript_%E5%88%B0_Java_%E7%9A%84%E8%BD%89%E6%8F%9B
补充:
To do more interesting things with Ant, you have access to properties, targets, and references. For an explanation of properties, targets, and references, refer to the ant manual
project.getProperty(string propertyName);
project.getUserProperty(string propertyName);
project.getTarget(string targetId);
project.getReference(string refereceId);
project is a shortcut for getProject(), which returns the project object.
self returns the script task itself for logging and other task specific utilities.
Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is embedded in J2SE 6 as the default Java scripting engine.
应用场景1.
在工作中, 我遇到了这样一个应用场景. 调用ant时传的属性参数中有连接数据库的密码, 在log中会显示出来, 如果将密码加密, 那么又会报数据库端的验证错误, 说不认这个经过加密的密码. 怎么办, 有两种方法, 一个是用java写自定义的ant task来解密传给ant script的密码. 然后用明文密码来连接数据库. 写java的缺点在于每次都要事先编译好这个ant task. 还有一种方法是在ant script写一个javascript task. 当然javascript可以调用java的解密函数, 这样不用每次运行ant script前都编译task. 具体脚本如下:
<project name="sfamx.cleanupdb" default="cleanup.db.logging"> <dirname property="sfamx.ddl.dir" file="${ant.file.sfamx.ddl.build}"/> <target name="cleanupall" depends="replace.db.password, cleanup.db.logging"/> <path id="jdbc.classpath"> <fileset dir="${db.driver.path}" includes="*.jar"/> </path> <property name="plaintext.password" value="${plainText}"/> <target name="replace.db.password"> <script language="javascript"> <classpath> <!-- for xxx 3.2 --> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.security.tibcrypt_2.15.0.009.jar"/> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.tpcl.org.slf4j.log4j12_1.6.200.001/slf4j-log4j12-1.5.2.jar"/> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.tpcl.org.slf4j.log4j12_1.6.200.001/slf4j-api-1.5.2.jar"/> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.tpcl.org.apache.log4j_1.2.400.002/log4j-1.2.15.jar"/> <!-- for xxx 3.1.5 --> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.security.tibcrypt_2.14.300.006.jar"/> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.tpcl.org.slf4j.log4j12_1.5.101.001/slf4j-log4j12-1.5.2.jar"/> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.tpcl.org.slf4j.log4j12_1.5.101.001/slf4j-api-1.5.2.jar"/> <pathelement location="${tibco.home}/components/shared/1.0.0/plugins/com.tibco.tpcl.org.apache.log4j_1.2.300.004/log4j-1.2.15.jar"/> </classpath> <![CDATA[ importPackage(com.tibco.security); var encryptedPassword = project.getProperty("admin.db.password"); var decryptedPassword = ObfuscationEngine.decrypt(encryptedPassword); var plainText = new java.lang.String(decryptedPassword); project.setProperty("plaintext.password", plainText) ]]> </script> </target> <target name="cleanup.db.logging" depends="replace.db.password" description="Run ddl to cleanup commonlogging tables in external database for amx administrator"> <sql driver="${admin.db.driver}" url="${admin.db.url}" userid="${admin.db.username}" password="${plaintext.password}" print="yes"> <classpath refid="jdbc.classpath"/> <transaction src="./${db.ddl.path}/drop_commonlogging.ddl"/> </sql> </target> </project>
输出
05/25/12 18:46:55.406 INFO: [ProcessWrapper] Executing: D:\build\fabric\DSEngine\resources\win32\wrappid.exe,D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\antcall.pid,D:/build/fabric/DSEngine/work/yangxiaoming-lt-1/tibcoamx/tibcojre/1.6.0/bin/java,-cp,D:/build/fabric/DSEngine/work/yangxiaoming-lt-1/tibcoamx/tools/lib/antpackage.jar,org.apache.tools.ant.launch.Launcher,-f,D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\scripts\cleanupDDL\cleanupDB.xml,-Dadmin.db.password=#!Panbl6s1FhkBUM70G9T+okR+fv5Nwoq+fYUx+SLzZi8=,-Dadmin.db.url=jdbc:sqlserver://192.168.71.99:1433;databasename=amxdb,-Dadmin.db.username=sa,-Ddb.ddl.path=mssql300,-Ddb.driver.path=D:\build\fabric\DSEngine\work\yangxiaoming-lt-1/fabric/mssql2008_driver,-Dtibco.home=D:/build/fabric/DSEngine/work/yangxiaoming-lt-1/tibcoamx,-Dadmin.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver,cleanup.db.logging,
05/25/12 18:46:55.609 INFO: [ProcessWrapper] [STDOUT] Buildfile: D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\scripts\cleanupDDL\cleanupDB.xml
05/25/12 18:46:55.875 INFO: [ProcessWrapper] [STDOUT]
05/25/12 18:46:55.875 INFO: [ProcessWrapper] [STDOUT] replace.db.password:
05/25/12 18:46:55.984 INFO: [ProcessWrapper] [STDOUT] [script] log4j:WARN No appenders could be found for logger (com.tibco.security.TIBCOSecurity).
05/25/12 18:46:55.984 INFO: [ProcessWrapper] [STDOUT] [script] log4j:WARN Please initialize the log4j system properly.
05/25/12 18:46:56.500 INFO: [ProcessWrapper] [STDOUT] [echo] Tibc02008
05/25/12 18:46:56.500 INFO: [ProcessWrapper] [STDOUT]
05/25/12 18:46:56.500 INFO: [ProcessWrapper] [STDOUT] cleanup.db.logging:
05/25/12 18:46:56.687 INFO: [ProcessWrapper] [STDOUT] [sql] Executing resource: D:\build\fabric\DSEngine\work\yangxiaoming-lt-1\scripts\cleanupDDL\mssql300\drop_commonlogging.ddl
05/25/12 18:46:56.687 INFO: [ProcessWrapper] [STDOUT] [sql] 0 rows affected
05/25/12 18:46:56.687 INFO: [ProcessWrapper] [STDOUT] [sql] 1 of 1 SQL statements executed successfully
05/25/12 18:46:56.703 INFO: [ProcessWrapper] [STDOUT]
05/25/12 18:46:56.703 INFO: [ProcessWrapper] [STDOUT] BUILD SUCCESSFUL
05/25/12 18:46:56.703 INFO: [ProcessWrapper] [STDOUT] Total time: 1 second
在ant中使用javascript, 在javascript又调用了java, 所以一定要注意数据的boxing和unboxing. 比如用java的方法返回decryptedPassword 时, 它其实已经被unboxing了, 失去了java的char[]类型, 但内在传递的值是不变的, 所以我们需要对它重新boxing, 让它成为java的String类型, 在boxing他的char[]值同时解码, 获得实际字符串, 也就是明文. 再将它传递给javascript的变量.
换句话说, 有的情况js和java的函数相同, 如果var的类型不明显,javascript引擎不知该调用哪个方法, 建议用var input = new String(strInput)
应用场景2.
在工作当中我遇到了这样一种情况, 安装时需要选择administration, runime host这样的安装profile, 这两者是交集. 我们的目的是想以administration里的所有assembly names作为exclude的对象, 在安装runtime host时加以过滤. 从而保留runtime host独有的assemblies.
<target name="gen-zip-excludes"> <path id="my.path"> <dirset dir="${installation.root}/components/shared/1.0.0/features" includes="*"> <depth max="1"/> </dirset> <dirset dir="${installation.root}/components/shared/1.0.0/plugins" includes="*"> <depth max="1"/> </dirset> <fileset dir="${installation.root}/components/shared/1.0.0/plugins" includes="*.jar"/> </path> <pathconvert targetos="unix" property="zip.excludes" refid="my.path" pathsep="${file.separator}**,"> </pathconvert> </target> ... ... <scriptdef name="bwsefilter" language="javascript"> <attribute name="text" /> <attribute name="pluginspath" /> <attribute name="featurespath" /> <attribute name="property" /> <![CDATA[ var text = new java.lang.String(attributes.get("text")); var path1 = new java.lang.String(attributes.get("pluginspath")); var path2 = new java.lang.String(attributes.get("featurespath")); var replaced = text.replaceAll(path1,"**").replaceAll(path2, "**"); project.setProperty(attributes.get("property"), replaced); ]]> </scriptdef> <target name="bwse.distribution.filter"> <bwsefilter text="${zip.excludes}" pluginspath="${installation.root}/components/shared/1.0.0/features" featurespath="${installation.root}/components/shared/1.0.0/plugins" property="file.excludes"/> </target> ... ... <target name="bwse.distribution.package" depends="bwse.distribution.clean"> <zip destfile="${bwse.distribution.name}"> <zipfileset dir="${installation.root}/" includes="bwse/"/> <zipfileset dir="${installation.root}/components" prefix="components" excludes="${file.excludes}"/> <zipfileset dir="${temp.dir}/" includes="grid-library.xml"/> <zipfileset dir="${temp.dir}/" includes="*.properties"/> <zipfileset dir="${download.root}/${bwse.installer.name}" includes="TIB_bwse_${bwse.installer.version}_license.pdf"/> </zip> <delete includeemptydirs="true"> <fileset dir="${temp.dir}/"/> </delete> </target>
注意以下问题
1.在这段脚本中:
<pathconvert targetos="unix" property="zip.excludes" refid="my.path" pathsep="${file.separator}**,">
初看可能会疑惑, targetos为什么标称unix呢? 其实是想和后面的pluginspath="${installation.root}/components/shared/1.0.0/features" featurespath="${installation.root}/components/shared/1.0.0/plugins" 兼容, 如果是没有targetos, 默认的情况下就会根据所在的平台自己判断, 如果在windows上, ${file.separator}就会成为'\', 这样与后面的没办法匹配, 也就过滤失败. 其实ant或者直接说java里都用'/'作为文件分隔符, 即使pluginspath和featurespath里用的是'\'也一样会失败的.
还有人可能会有疑问, pathsep的分隔符为什么要用'${file.separator}**,',而不是',' 原因是我们收集的文件集合里有的是文件夹, 有的是文件, 文件夹必须用'**/文件夹/**过滤', 文件用'**/文件', 而文件用'**/文件/**'也没有问题, 为了把两者都一次性过滤, 所以都用'**/文件或文件夹/**'来过滤.
2. 在<![CDATA[]]>中, 我们可以用javascript和java代码来完成自定义task, 但js和java混用的话,函数又类似的时候可能会混淆编译器. 所以建议要么用javascript, 要么用java的函数, 用java之前最好把js的字符串用new java.lang.String();转化一下, 比如var text = new java.lang.String(attributes.get("text"));
具体可以参考下这篇文章:
https://developer.mozilla.org/zh_tw/Core_JavaScript_1.5_%E6%95%99%E5%AD%B8/LiveConnect_%E6%A6%82%E8%A6%81/%E8%B3%87%E6%96%99%E9%A1%9E%E5%9E%8B%E7%9A%84%E8%BD%89%E6%8F%9B/%E5%BE%9E_JavaScript_%E5%88%B0_Java_%E7%9A%84%E8%BD%89%E6%8F%9B
补充:
To do more interesting things with Ant, you have access to properties, targets, and references. For an explanation of properties, targets, and references, refer to the ant manual
project.getProperty(string propertyName);
project.getUserProperty(string propertyName);
project.getTarget(string targetId);
project.getReference(string refereceId);
project is a shortcut for getProject(), which returns the project object.
self returns the script task itself for logging and other task specific utilities.
发表评论
-
Linux下安装SF oracle
2013-08-06 16:43 694在使用oracle enabler时需要在engine运行的系 ... -
ORA-01940 如何drop user
2013-03-27 19:28 1445使用drop user bpmuser cascade时遇到以 ... -
如何向apacheDS添加新的user
2013-03-01 12:24 19611.Right-click on the ou=users n ... -
如何导入apache DS的数据
2013-02-28 19:35 15451. 安装好ApacheDS后, 启动ApacheDS ser ... -
ORA-01119: error in creating database file ***
2013-02-20 19:24 6647case1.今天在运行amx-bpm deploy-bpm的脚 ... -
(转)Oracle用户、权限、角色管理介绍
2013-02-20 14:15 744转自:http://blog.csdn.net/jun ... -
about Teradata SQL
2012-11-09 14:37 923http://www.razorsql.com/docs/te ... -
How to change the password for a user in Oracle
2012-11-09 14:34 965Answer: To change a user's pas ... -
Modify password of an accnout in SQL Server
2012-11-09 14:32 765http://msdn.microsoft.com/en-us ... -
Ant执行SQL server 存储过程时的一个问题
2012-11-07 15:31 1453在ant上执行SQL server的存储过程, 事务不会自动提 ... -
How to forcely drop tables in SQL Server 2008
2012-11-01 17:25 820This script can drop a SQL Serv ... -
Ant中执行oracle存储过程
2012-06-08 15:08 1304同样的oracle dll脚本: declare c int ... -
如何创建SQL Server 2008的数据库
2012-05-09 19:56 1062step 1.打开SQL Server Managem ... -
如何创建oracle新用户(新schema)
2012-05-08 18:24 6766oracle中创建新的user, 也就相应地创建了一个新的sc ... -
详解Oracle用户解锁命令的两则实现方法
2011-08-10 18:58 850在安装完Oracle 10g之后,想打开sql*plus来学习 ... -
Oracle客户端连接数据库总结
2011-08-10 18:56 1088tnsnames.ora文件 这个文件类似于unix 的h ... -
oracle中几个配置文件的作用
2011-08-10 18:55 935tnsname.ora 是客户端用来查找,连接lis ... -
忘记oracle数据库密码怎么办
2011-08-10 18:49 1069很久不用的oralce数据库,如果忘记了密码,可以这样 ...
相关推荐
上面的项目的工程数据库代码 博文链接:https://zz563143188.iteye.com/blog/1819765
10.2 在JavaScript中抛出错误 10.3 抛出错误的好处 10.4 何时抛出错误 10.5 try-catch语句 10.6 错误类型 第11章 不是你的对象不要动 11.1 什么是你的 11.2 原则 11.2.1 不覆盖方法 11.2.2 不新增方法 ...
Kotlin 中调用 JavaScript JavaScript 中调用 Kotlin JavaScript 模块 JavaScript 反射 JavaScript DCE 工具 编写 Kotlin 代码文档 使用 Kapt 使用 Gradle 使用 Maven 使用 Ant Kotlin 与 OSGi 编译器插件
10.2 在JavaScript中抛出错误 10.3 抛出错误的好处 10.4 何时抛出错误 10.5 try-catch语句 10.6 错误类型 第11章 不是你的对象不要动 11.1 什么是你的 11.2 原则 11.2.1 不覆盖方法 11.2.2 不新增方法 ...
在 Kotlin 中调用 Java 代码 135 Java 中调用 Kotlin 142 JavaScript 148 动态类型 148 Kotlin 中调用 JavaScript 150 JavaScript 中调用 Kotlin 153 JavaScript 模块 155 JavaScript 反射 158 JavaScript DCE 159 ...
antd-scss-theme-plugin是一个,可让您在具有SCSS样式的项目中有效使用 。 有了它,您可以: 通过通过单个theme.scss文件指定主题变量替代来定制Ant Design。 @import您的theme.scss文件中的Ant Design的和 变量...
项目适合刚开始使用ant-desgin-pro开发的小伙伴,里面权限管理,组件调用,自定义组件,状态管理,mock等等都使用到了,是一个小而全的项目。
是用于推断类型信息和调用图的 JavaScript 数据流分析。 当前版本的分析包含 ECMAScript 3rd edition 的模型,包括标准库,以及 ECMAScript 5 及其标准库、HTML DOM 和浏览器 API 的部分模型。 在 ECMAScript 引入与...
20.4节在JavaScript中调用ActionScript方法函数 20.5节经由BrowserManager改变HTML页面标题 20.6节BrowserManager解析URL 20.7节经由BrowserManager深度-链接到数据 20.8节经由BrowserManager深度-链接容器 20.9节...
DWR是一个Java库,它使服务器上的Java和浏览器中JavaScript能够尽可能简单地进行交互和相互调用。 DWR是适用于Java的Easy Ajax。 网站 论坛 旧邮件列表Mailman存档: 旧邮件列表Nabble存档: 建筑DWR DWR主要...
Ionic 调用原生的功能是基于 Cordova,Cordova 提供了使用JavaScript 调用 Native 功能,ionic 自己也封装了一套漂亮的 CSS UI 库。 2.1.3 开发工具 Visual Studio Code 2.1.4 管理工具 Git 2.2 环境搭建 2.2.1...
高度可定制零售供应链中台基础系统,中台管理界面可通过javascript高阶函数定制,Java后台主要通过增加方法或替换现有的大量方法来灵活定制。 本系统代码是用自研知识图谱和因果网络处理系统自动生成高可维护源代码...
除了使用多语言应用程序外,您还可以使用AntDesign创建组件,路由,进行API调用,并使您的应用程序更具吸引力。 即时反馈 享受良好的编码速度和出色的DX(Developer eXperience)。 更改CSS,SASS,LESS,JS后,您...
了解:可以在实际需要时参考技术文档或帮助文件满足你的需要,基本知道此项技术在你运用是所起的作用,能够调用或者使用其根据规定提供给你的调用方式。 二:基本要求 1:html 掌握程度:熟练。原因:不会html你...
创建在Eclipse中开发GWT应用所需要的项目基本文件和可选的Ant buildfile文件。 • applicationCreator applicationCreator命令用于创建基本的HelloWorld!应用和GWT应用开发环境。 • junitCreator 生成junti...
建造在此仓库的根目录中调用ant 。依存关系环境: eXist-db> = 2.2 安装所需: JWT实施进一步要求: eXanore批注存储设置在$ .exanoreParam:JwtSecret的../eXanore/modules/params.xqm中插入您的JWT机密参考学分...
我认为使用这样的工具简单地调用诸如“部署到组织”或“从组织中检索元数据”之类的命令实在是太过分了,在该工具中,该工具仅调用Ant来执行这些任务并将文件放在文件夹中。 无论如何,我了解(或多或少)该工具的...
自定义任务可以调用Shell脚本,ant目标等。 自定义脚本 Groovy脚本在Hac中发送和执行。 将groovy脚本放到scripts文件夹中,将创建一个相应的gradle任务。 在Hac中运行任意的Groovy脚本 程序:从自动化项目中选择...
在antd3.x中,当form表单输入的不满足rule,得自己调用方法去全部进行判断 ex: 在ant3.x中,利用rule对用户名,密码分别进行校验,当输入的条件不满足时,点击登录也会触发登录的操作函数;但是在ant4.x中,不满足...
D3和Ant Design实施仪表板以可视化单个玩家的击球数据,包括击球图表和用户个人资料视图从stats.nba.com提供的API中获取播放器数据创建了过滤器和主题(十六进制和散点图)以在击球图上提供更多自定义的可视化通过...