用于修改.java文件的Ant脚本适用于“常规”Eclipse项目,但不适用于Maven Eclipse项目

时间:2012-11-15 16:13:15

标签: eclipse maven ant

我有一个相对简单的Ant脚本commentOutXmlAnnotations.xml,它编辑所有子目录中的Java文件的内容,以通过正则表达式注释掉某些行:

<?xml version="1.0"?>
<project
    name="CommentOutXmlAnnotations"  
    basedir="."  
    default="commentOutXmlAnnotations" >

    <!-- This Ant script comments out the following lines from the Java files in this directory
         and all subdirectories:
        -import javax.xml.bind.annotation.*;
        -@Xml*

        To run this in Eclipse, right-click on this file and click "Run As->Ant Build".             
     -->

    <target
        name="commentOutXmlAnnotations"        
        description="Run" >
            <replaceregexp
                byline="false"
                flags="g" >

                <regexp pattern="(@Xml[A-Za-z0-9]+(\([^)]+\))?|import javax\.xml\.bind\.annotation\.[A-Za-z0-9.]+;)[ \t]*(\r?\n)" />

                <substitution expression="/*\1*/\3" />

                <fileset dir="." >
                    <include name="*/*.java" />
               </fileset>
            </replaceregexp>        
    </target> 
</project>

如果我将commentOutXmlAnnotations.xml放入带有子目录中的.java文件的新的General Eclipse项目中并右键单击并执行“Run As-&gt; Ant Build”,一切正常并且.java文件中的行被评论出来。

但是,如果我将此commentOutXmlAnnotations.xml文件放入Eclipse Maven项目并尝试执行相同的操作,它似乎执行并且我将获得控制台输出:

Buildfile: D:\Eclipse_Juno_SR1_OTP\opentripplanner-pojos-unversioned\commentOutXmlAnnotations.xml
commentOutXmlAnnotations:
BUILD SUCCESSFUL
Total time: 302 milliseconds

但子目录中的.java文件的内容不会更改。我认为这与Maven项目目录设置有关。

如何在Eclipse Maven项目中将project / ant脚本配置为在其放置的同一目录中执行?

1 个答案:

答案 0 :(得分:0)

所以,愚蠢的错误。

上面的脚本只搜索一个目录深度,所以看起来脚本没有任何影响,因为所有java文件的包名都长于一个目录。

要搜索多个级别的所有子目录,fileset元素应为:

<fileset dir="." >
    <include name="**/*.java" />
</fileset>