`
maomaode
  • 浏览: 118640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CoC not works always

    博客分类:
  • JAVA
阅读更多
<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">你知道如何在maven里面添加一个待编译的目录吗?
我知道如果是通过mojo的话,也就是maven的plugin当然是可以的, 就像我们在Apache CXF 的CodeGen plugin (wsdl2java) 里面做的一样

project.addCompileSourceRoot(sourceRoot);
 


默认情况下,maven只会将下面的目录纳入编译路径

/src/main/java
/src/test/java
Well, 现在我们就有了这样的一个需求,我想再添加一个目录
/src/test/generate
<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">理由是这个目录下的文件将不会作checkstyle以及pmd, 如何来实现呢?
通过#maven IRC以及问了身边的朋友,得到的答案都不尽相同
最后得出的结论是你需要通过plugin来实现,当然幸运的是这个plugin已经有了,

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
  <execution>
      <id>add-source</id>
      <phase>generate-test-sources</phase>
      <goals>
    <goal>add-test-source</goal>
      </goals>
      <configuration>
    <sources>
        <source>${basedir}/src/test/generated</source>
    </sources>
      </configuration>
  </execution>
    </executions>
</plugin>
 

你可以在这里找到官方发布的plugin(hey jason, 我的jdee还没有放上去哦)
通过又一个活生生的例子我们可以看到,CoC的局限性了, 也就是你失去了控制
我想大部分程序员,之所以喜欢写代码是因为他们可以控制,而且是可以很方便的控制整个过程,如果做一个简单的事情都需要搞得这么麻烦的话,他的可爱程度就大大折扣了
最可怕的事情是,有了问题,你都需要等待, 你得求助别人
所以我把框架分为几类,1类是可以控制的, 2类是很难控制的, 可控制的又可分为1.1方便使用的,和1.2使用烦琐的
, maven无疑被我归为2类, 而如果说ant是属于1.2的话,那么我可以通过结合CoC以及简化操作流程,维护成本,来让他成为可控制,使用又方便的框架, 这无疑就是google.fant要实现的目标。 目前还在google开设了讨论组, 欢迎你来踩。 Kohsuke Kawaguchi也在他的这篇文章里提到了类似的问题,他说他在试ivy也是基于ant的一个dpendency管理框架, 我在fant之前就已经了解到了, 而且类似的项目已经有了很多,我之所以选择fant是因为,我不喜欢自己来定义出新的描述文件来, 所有的定义应该在ant范围之内, 也就说,我不想引入太多新的概念,新的语法,来增加学习的困难。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics