当前位置: 首页 > news >正文

怎么样做深网的网站开发网站的基本原则

怎么样做深网的网站,开发网站的基本原则,北京中信建设有限责任公司,网站标题如何设置gradle 构建应用流程最近#xff0c;我想在Gradle项目中构建并应用本地ast转换。 虽然我可以找到几个有关如何编写转换的示例#xff0c;但找不到完整的示例来显示完整的构建过程。 转换必须单独编译然后放在类路径中#xff0c;因此其源代码不能简单地放在Groovy源代码树的… gradle 构建应用流程 最近我想在Gradle项目中构建并应用本地ast转换。 虽然我可以找到几个有关如何编写转换的示例但找不到完整的示例来显示完整的构建过程。 转换必须单独编译然后放在类路径中因此其源代码不能简单地放在Groovy源代码树的其余部分中。 这是让我绊倒了一段时间的细节。 最初我设置了一个单独的GroovyCompile任务来处理其余注释然后再处理其余注释摘自Gradle论坛上Peter Niederwieser的有用建议。 在此可行的同时要应用转换的一个更简单的解决方案是设置多项目构建。 主项目依赖于具有ast转换源文件的子项目。 这是一个最小示例的目录结构 ast/build.gradle ast构建文件 ast/src/main/groovy/com/cholick/ast/Marker.groovy 标记界面 ast/src/main/groovy/com/cholick/ast/Transform.groovy AST转型 build.gradle 主构建文件 settings.gradle 项目层次结构配置 src/main/groovy/com/cholick/main/Main.groovy 转化源 对于完整的工作源具有简单的测试没有*导入请克隆https://github.com/cholick/gradle_ast_example 根build.gradle文件包含对ast项目的依赖项 dependencies {...compile(project(:ast)) } 根settings.gradle定义ast子项目 include ast 基础项目还具有src / main / groovy / com / cholick / main / Main.groovy其中包含要转换的源文件。 在此示例中我编写的ast转换将名为“ added”的方法添加到类中。 package com.cholick.mainimport com.cholick.ast.MarkerMarker class Main {static void main(String[] args) {new Main().run()}def run() {println Running mainassert this.class.declaredMethods.find { it.name added }added()} } 在ast子项目中ast / src / main / groovy / com / cholick / ast / Marker.groovy定义一个接口来标记ast转换的类 package com.cholick.astimport org.codehaus.groovy.transform.GroovyASTTransformationClassimport java.lang.annotation.*Retention(RetentionPolicy.SOURCE) Target([ElementType.TYPE]) GroovyASTTransformationClass([com.cholick.ast.Transform]) public interface Marker {} 最后ast转换类处理源类并添加一个方法 package com.cholick.astimport org.codehaus.groovy.ast.* import org.codehaus.groovy.ast.builder.AstBuilder import org.codehaus.groovy.control.* import org.codehaus.groovy.transform.*GroovyASTTransformation(phase CompilePhase.INSTRUCTION_SELECTION) class Transform implements ASTTransformation {void visit(ASTNode[] astNodes, SourceUnit sourceUnit) {if (!astNodes) returnif (!astNodes[0]) returnif (!astNodes[1]) returnif (!(astNodes[0] instanceof AnnotationNode)) returnif (astNodes[0].classNode?.name ! Marker.class.name) returnClassNode annotatedClass (ClassNode) astNodes[1]MethodNode newMethod makeMethod(annotatedClass)annotatedClass.addMethod(newMethod)}MethodNode makeMethod(ClassNode source) {def ast new AstBuilder().buildFromString(CompilePhase.INSTRUCTION_SELECTION, false,def added() { println Added })return (MethodNode) ast[1].methods.find { it.name added }} } 感谢Hamlet DArcy提供的一个出色的AST转换示例并感谢Peter Niederwieser在论坛上回答了我的问题 。 翻译自: https://www.javacodegeeks.com/2014/09/using-gradle-to-build-apply-ast-transformations.htmlgradle 构建应用流程
http://wiki.neutronadmin.com/news/435121/

相关文章:

  • 深圳网站制作880松北区建设局网站
  • 土巴兔网站开发网站开发路径
  • 上海网站建设找哪家wordpress 实现
  • 临沂购买模板建站网站代理工具
  • 销售型企业网站建设应遵守的原则长春专业做网站的公司
  • 成都网站建设app开发wordpress对应国家语言
  • 做网站要有策划么营业推广是什么
  • 163网站是jsp做的吗wordpress手机跳转
  • 自己做同城购物网站网销网站建设流程图
  • 有哪些网站可以免费wordpress 编写手机主题
  • 制作网站公司网址稿定ai官网
  • 寿光网站开发工业互联网平台分类
  • 性价比高seo网站优化WordPress主题在线汉化插件
  • 厦门网站注册与网页设计公司wordpress 类目插件
  • 枣庄住房和城乡建设局网站商城网站数据库
  • c 网站开发技术wordpress 获取分类子分类
  • 企业网站设计布局电脑租赁
  • 利用c 做网站wordpress子网页
  • 数字货币网站开发需求新网 网站备案
  • 网站前台数据库共享经济网站建设策划书
  • 创意logo设计生成器网站内容优化方法有哪些
  • 成都网站建设千古互联制作app的软件手机版
  • 基于html5的购物商城网站哪里找专业做网站的人常熟
  • 中国铁路建设集团公司网站网站建设排名公司
  • 新闻资讯网站备案建设电影网站如何盈利
  • 网站开发后期要解决的问题北京高端网站定制公司
  • 旅游网站建设的目标是什么意思网络动画设计是什么
  • 帝国cms网站制作一个软件是怎么做出来的
  • 某旅行社网站建设策划书做影视网站会侵权犯法吗
  • 本科专业 网站开发厦门建设局网站2018