你说的应该是生成javadoc吧?
成都网络公司-成都网站建设公司创新互联十载经验成就非凡,专业从事网站设计制作、成都做网站,成都网页设计,成都网页制作,软文推广,广告投放平台等。十载来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!
最简单方式就是使用命令行, cd到你的项目源代码目录下, 输入如下指令:
javadoc -d docs -subpackages com.yourpackage
其中-d docs指定了生成的javadoc在相对目录docs下, -subpackages com.yourpackage指定了你要被生成javadoc的源代码包.
JAVADOC是官方提供的一种生成注释文档的工具, 他的用法如下:
用法: javadoc [options] [packagenames] [sourcefiles] [@files]
-overview file 从 HTML 文件读取概览文档
-public 仅显示 public 类和成员
-protected 显示 protected/public 类和成员 (默认值)
-package 显示 package/protected/public 类和成员
-private 显示所有类和成员
-help 显示命令行选项并退出
-doclet class 通过替代 doclet 生成输出
-docletpath path 指定查找 doclet 类文件的位置
-sourcepath pathlist 指定查找源文件的位置
-classpath pathlist 指定查找用户类文件的位置
-cp pathlist 指定查找用户类文件的位置
-exclude pkglist 指定要排除的程序包列表
-subpackages subpkglist 指定要递归加载的子程序包
-breakiterator 计算带有 BreakIterator 的第一个语句
-bootclasspath pathlist 覆盖由引导类加载器所加载的
类文件的位置
-source release 提供与指定发行版的源兼容性
-extdirs dirlist 覆盖所安装扩展的位置
-verbose 输出有关 Javadoc 正在执行的操作的信息
-locale name 要使用的区域设置, 例如 en_US 或 en_US_WIN
-encoding name 源文件编码名称
-quiet 不显示状态消息
-Jflag 直接将 flag 传递到运行时系统
-X 输出非标准选项的提要
通过标准 doclet 提供:
-d directory 输出文件的目标目录
-use 创建类和程序包用法页面
-version 包含 @version 段
-author 包含 @author 段
-docfilessubdirs 递归复制文档文件子目录
-splitindex 将索引分为每个字母对应一个文件
-windowtitle text 文档的浏览器窗口标题
-doctitle html-code 包含概览页面的标题
-header html-code 包含每个页面的页眉文本
-footer html-code 包含每个页面的页脚文本
-top html-code 包含每个页面的顶部文本
-bottom html-code 包含每个页面的底部文本
-link url 创建指向位于 url 的 javadoc 输出的链接
-linkoffline url url2 利用位于 url2 的程序包列表链接至位于 url 的文档
-excludedocfilessubdir name1:.. 排除具有给定名称的所有文档文件子目录。
-group name p1:p2.. 在概览页面中, 将指定的程序包分组
-nocomment 不生成说明和标记, 只生成声明。
-nodeprecated 不包含 @deprecated 信息
-noqualifier name1:name2:... 输出中不包括指定限定符的列表。
-nosince 不包含 @since 信息
-notimestamp 不包含隐藏时间戳
-nodeprecatedlist 不生成已过时的列表
-notree 不生成类分层结构
-noindex 不生成索引
-nohelp 不生成帮助链接
-nonavbar 不生成导航栏
-serialwarn 生成有关 @serial 标记的警告
-tag name:locations:header 指定单个参数定制标记
-taglet 要注册的 Taglet 的全限定名称
-tagletpath Taglet 的路径
-charset charset 用于跨平台查看生成的文档的字符集。
-helpfile file 包含帮助链接所链接到的文件
-linksource 以 HTML 格式生成源文件
-sourcetab tab length 指定源中每个制表符占据的空格数
-keywords 使程序包, 类和成员信息附带 HTML 元标记
-stylesheetfile path 用于更改生成文档的样式的文件
-docencoding name 指定输出的字符编码
package tests;
/**
* 随机生成32位字符串
*/
public class String32 {
public static String random(int length){//传入的字符串的长度
StringBuilder builder = new StringBuilder(length);
for(int i = 0; i length; i++){
int r = (int) (Math.random()*3);
int rn1=(int)(48+Math.random()*10);
int rn2=(int)(65+Math.random()*26);
int rn3=(int)(97+Math.random()*26);
switch(r){
case 0:
builder.append((char)rn1);
break;
case 1:
builder.append((char)rn2);
break;
case 2:
builder.append((char)rn3);
break;
}
}
return builder.toString();
}
public static void main(String[] args){
String s = String32.random(32);
System.out.println(s);
}
}
首先搭建起jenkins环境,android官方提供了使用ant编译打包的脚本,所以要在jenkins系统配置里面将ant配置好;然后在jenkins里面新建一个项目,这里列出比较重要的几项配置:1、项目源代码位置,一般就是指定svn吧2、构建过程添加shell,写入如下命令:androidupdateproject-t?-p?-n?(其中第一个问号处填写要使用的androidAPI版本,可在命令行中用androidlisttarget获得,第二个问号处填写项目目录,当前目录的话就用.表示,第三个问号是填写项目名称)3、然后添加ant调用,最好要会ant的基础使用这几个配置都是为了能将源代码打包成apk文件,打包完成后,可以再次调用shell,连接设备或者打开模拟器,安装应用,执行你的自动化脚本;这是一个概括的过程,。。如果要细说那就太多了,你慢慢玩弄吧
1、首先打开电脑,并进入Java软件。
2、其次要同一个pc上并发执行多个app真机,加上bp和chromedriver端口号。
3、最后启动程序,即可跑多个app自动化。
zip包,然后自动下载下来
1.预先定义好模板
2.界面输入相关参数
3.解析模板生成代码并下载
最后放出源代码:
package com.et.controller.system.createcode;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.et.controller.base.BaseController;
import com.et.util.DelAllFile;
import com.et.util.FileDownload;
import com.et.util.FileZip;
import com.et.util.Freemarker;
import com.et.util.PageData;
import com.et.util.PathUtil;
/**
* 类名称:FreemarkerController
* 创建人:Harries
* 创建时间:2015年1月12日
* @version
*/
@Controller
@RequestMapping(value=”/createCode”)
public class CreateCodeController extends BaseController {
/**
* 生成代码
*/
@RequestMapping(value=”/proCode”)
public void proCode(HttpServletResponse response) throws Exception{
PageData pd = new PageData();
pd = this.getPageData();
/* ============================================================================================= */
String packageName = pd.getString(“packageName”); //包名 ========1
String objectName = pd.getString(“objectName”); //类名 ========2
String tabletop = pd.getString(“tabletop”); //表前缀 ========3
tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前缀转大写
String zindext = pd.getString(“zindex”); //属性总数
int zindex = 0;
if(null != zindext !””.equals(zindext)){
zindex = Integer.parseInt(zindext);
}
ListString[] fieldList = new ArrayListString[](); //属性集合 ========4
for(int i=0; i zindex; i++){
fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //属性放到集合里面
}
MapString,Object root = new HashMapString,Object(); //创建数据模型
root.put(“fieldList”, fieldList);
root.put(“packageName”, packageName); //包名
root.put(“objectName”, objectName); //类名
root.put(“objectNameLower”, objectName.toLowerCase()); //类名(全小写)
root.put(“objectNameUpper”, objectName.toUpperCase()); //类名(全大写)
root.put(“tabletop”, tabletop); //表前缀
root.put(“nowDate”, new Date()); //当前日期
DelAllFile.delFolder(PathUtil.getClasspath()+”admin/ftl”); //生成代码前,先清空之前生成的代码
/* ============================================================================================= */
String filePath = “admin/ftl/code/”; //存放路径
String ftlPath = “createCode”; //ftl路径
/*生成controller*/
Freemarker.printFile(“controllerTemplate.ftl”, root, “controller/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Controller.java”, filePath, ftlPath);
/*生成service*/
Freemarker.printFile(“serviceTemplate.ftl”, root, “service/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Service.java”, filePath, ftlPath);
/*生成mybatis xml*/
Freemarker.printFile(“mapperMysqlTemplate.ftl”, root, “mybatis_mysql/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);
Freemarker.printFile(“mapperOracleTemplate.ftl”, root, “mybatis_oracle/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);
/*生成SQL脚本*/
Freemarker.printFile(“mysql_SQL_Template.ftl”, root, “mysql数据库脚本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle数据库脚本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);
/*生成jsp页面*/
Freemarker.printFile(“jsp_list_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_list.jsp”, filePath, ftlPath);
Freemarker.printFile(“jsp_edit_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_edit.jsp”, filePath, ftlPath);
/*生成说明文档*/
Freemarker.printFile(“docTemplate.ftl”, root, “说明.doc”, filePath, ftlPath);
//this.print(“oracle_SQL_Template.ftl”, root); 控制台打印
/*生成的全部代码压缩成zip文件*/
FileZip.zip(PathUtil.getClasspath()+”admin/ftl/code”, PathUtil.getClasspath()+”admin/ftl/code.zip”);
/*下载代码*/
FileDownload.fileDownload(response, PathUtil.getClasspath()+”admin/ftl/code.zip”, “code.zip”);
}
}
一个大型的java项目的开发往往需要加载很多的各式各样的第三方jar包依赖,这时就需要专门工具来维护这些繁杂的jar包,否则各个jar包的版本问题,依赖问题会让你头很大,当多个团队协作开发时,项目的标准框架配置也需要能够快速在不同团队之间复制,另外项目从创建、开发、测试、发布的整个项目生命周期也需要专门的工具来维护。
自动化构建工具就是为了解决以上这些问题的。
目前比较主流的自动化构建工具主要有:Maven、gradle、Ant等。
其中Ant已经走下坡路,除了维护以前的老项目以外,已经基本没有公司用了。
过去几年中Maven已经成为java项目的事实构建工具,没有之一。
而近两年Gradle获得越来越多的人使用,分走了不少Maven的用户。
在这我们主要了解一下Maven和gradle。
MavenMaven是一个采用纯Java编写的开源项目管理工具。
它包含了一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DependencyManagementSystem),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
Maven采用了一种被称之为projectobjectmodel(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个生命周期,包括编译,构建,测试,发布,报告等等。
gradleGradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化建构工具。
它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。
当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。
和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。
Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。
徐州电脑培训发现与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是javaPlugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构建周期。