标签: ant

将PMD的复制/粘贴检测器与Gradle一起使用

我想在我的Gradle构建中使用复制/粘贴检测器.

这就是为什么我决定将以下Ant任务(我在这里找到)转换为Gradle语法:

<target name="cpd">
    <taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" />
    <cpd minimumTokenCount="100" outputFile="/home/tom/cpd.txt">
        <fileset dir="/home/tom/tmp/ant">
            <include name="**/*.java"/>
        </fileset>
    </cpd>
</target>
Run Code Online (Sandbox Code Playgroud)

这就是翻译目前的样子:

check << {
        ant.taskdef(name: 'cpd', classname: 'net.sourceforge.pmd.cpd.CPDTask', classpath: configurations.pmd.asPath)
        ant.cpd(minimumTokenCount: '100', outputFile: file('build/reports/pmd/copyPasteDetector.txt').toURI().toString()) {
            fileset(dir: 'src'){
                include(name: '**.java')
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,调用gradle check产生了一个net.sourceforge.pmd.cpd.ReportException,堆栈跟踪在这里.

如何使用Gradle 1.9使用复制/粘贴检测器扫描源代码?

谢谢!

ant pmd gradle

4
推荐指数
1
解决办法
2212
查看次数

使用<macrodef>和exec的可变数量的参数

我使用exec从ant build.xml多次调用命令行程序.此命令行程序针对不同情况采用可变数量的参数.

目前我使用exec多次调用此外部程序,代码看起来很混乱.例如:

<exec dir="./deploy_abc/bin" executable="python" failonerror="true" >
    <arg line="tests.py"/>
    <arg line="-h aaa"/>
    <arg line="-u bbb"/>
    <arg line="-p ccc"/>
</exec>

<exec dir="./deploy_abc/bin" executable="python" failonerror="true" >
    <arg line="tests.py"/>
    <arg line="-h ddd"/>
    <arg line="-u eee"/>
    <arg line="-p fff"/>
    <arg value="this is second test"/>
</exec>

<exec dir="./deploy_abc/bin" executable="python" failonerror="true" >
    <arg line="tests.py"/>
    <arg line="-u bbb"/>
    <arg line="-p ccc"/>
    <arg value="this is another test"/>
</exec>
Run Code Online (Sandbox Code Playgroud)

所以我打算使用macrodef重构这个build.xml文件.

我的问题是如何将可变数量的参数传递给macrodef.如上所示,我需要根据场景将不同的参数传递给exec-ed程序.

ant

4
推荐指数
1
解决办法
3295
查看次数

Ant isset行为

根据文档isset子句"测试是否已在此项目中设置给定属性".我不明白当设置属性时wheter isset返回true或false在下面的代码片段中,当未设置env.JAVA_HOME时,java.pass.home设置为somval.

<condition property="java.passed.home" value="somval">
    <isset property="${env.JAVA_HOME}"/>
</condition>
Run Code Online (Sandbox Code Playgroud)

这个片段适用于我的要求,但我认为正确的代码片段应该是这样的,因为我想在另一个属性不可用时设置属性

<condition property="java.passed.home" value="somval">
    <not>
        <isset property="${env.JAVA_HOME}"/>
        </not>
    </condition>
Run Code Online (Sandbox Code Playgroud)

有人可以澄清一下吗?提前致谢

ant

4
推荐指数
1
解决办法
1万
查看次数

运行maven编译两次

我正在将ant项目迁移到maven,这个项目很不寻常:它在这些编译步骤之间使用了两个编译步骤和代码生成步骤.整个构建过程可以描述如下:

  1. 编译src目录中的所有内容
  2. 运行内部java工具,将java指向已编译的类和用于编译这些类的jar.此工具使用反射基于编译的类生成代码.
  3. 编译生成的类,最后组装一个jar.

我发现了一些建议创建自定义生命周期的链接,但我不知道从哪里开始.如果有人可以指出类似的项目配置真的很棒.

用maven实现这个目标的最简单方法是什么?我想我应该使用ant maven插件,但我仍然不明白如何使它编译源两次并在第一次编译步骤后将其指向生成的源.

java ant maven

4
推荐指数
1
解决办法
3074
查看次数

Ant构建失败,"[javac] javac:无效目标版本:7"

更新: 请在此处查看解决方案.

感谢大家的帮助!


我在尝试使用Ant编译项目时遇到错误,它声称"[javac] javac:无效的目标版本:7"并导致构建失败.

我在Mac OSX Mavericks机器上运行javac版本1.7.0_40.Ant版本:Apache Ant(TM)版本1.8.3于2012年2月26日编译

只有在尝试使用Ant进行编译时才会出现问题.使用命令行中的javac编译项目中的单个文件(使用以下命令):

javac -d /Users/username/git/appinventor-sources/appinventor/common/build/classes/CommonUtils -classpath /Users/username/git/appinventor-sources/appinventor/common/build/classes/CommonUtils:/Users/username/git/appinventor-sources/appinventor/lib/guava/guava-14.0.1.jar -target 7 -encoding utf-8 -g:lines,vars,source -source 7 common/src/com/google/appinventor/common/utils/*
Run Code Online (Sandbox Code Playgroud)

build-common.xml文件为javac指定:

<attribute name="source" default="7"/>
<attribute name="target" default="7"/>
Run Code Online (Sandbox Code Playgroud)

相同的构建文件适用于其他人,可以在以下网址找到:https: //github.com/cdlockard/appinventor-sources/blob/master/appinventor/build-common.xml

看完这个,我检查了早期的Java版本我的机器上,并没有发现任何.

根据这个问题,我补充道

executable="/usr/bin/javac"
Run Code Online (Sandbox Code Playgroud)

到build-common.xml文件以确保它找到了正确的Java编译器,但错误仍在继续.

命令行输出如下:

init:

CommonUtils:
[javac] Compiling 1 source file to /Users/username/git/appinventor-sources/appinventor/common/build/classes/CommonUtils
[javac] javac: invalid target release: 7
[javac] Usage: javac <options> <source files>
[javac] use -help for a list of possible options

BUILD FAILED
/Users/username/git/appinventor-sources/appinventor/build.xml:16: The following …
Run Code Online (Sandbox Code Playgroud)

java ant javac

4
推荐指数
1
解决办法
2万
查看次数

Jenkins无法找到ANT的可执行文件

我正在使用Ant的自动安装选项但仍然jenkins抱怨它无法找到可执行文件.我错过了什么吗?我已经给出了我们使用的蚂蚁版本的路径.它已成功下载并解压缩到服务器上,但它仍然抱怨它无法找到可执行文件.

ant jenkins

4
推荐指数
1
解决办法
1万
查看次数

升级到ant 1.9.2后,Ant脚本importPackage不起作用

刚升级到含有ant 1.9.2的eclipse luna,我的<script>目标停止在这段代码中工作:

<script language="javascript"><![CDATA[
    importPackage(java.net);
    importPackage(java.io);
    ...
Run Code Online (Sandbox Code Playgroud)

错误信息:

 javax.script.ScriptException: ReferenceError: "importPackage" is not defined in <eval> at line number 2
Run Code Online (Sandbox Code Playgroud)

java eclipse ant rhino

4
推荐指数
1
解决办法
5179
查看次数

Ant配置 - debuglevel属性var line和source的含义

您能否解释一下Apache Ant中调试级别属性var,行和源的含义.很明显,这有助于生成帮助属性debug = true的所有调试信息.

  1. 定义debuglevel ="lines,vars,source"的目的是什么?这会限制调试信息吗?

  2. 如果每个值1.lines 2. vars 3. source?

  3. 我是否需要启用调试才能使此属性有效?

规范说,

要附加到-g命令行开关的关键字列表.除现代,经典(ver> = 1.2)和jikes外,所有实现都会忽略这一点.合法值为none或以逗号分隔的以下关键字列表:lines,vars和source.如果未指定debuglevel,则默认情况下不会将任何内容附加到-g.如果未打开调试,则将忽略此属性.

ant javac

4
推荐指数
2
解决办法
5991
查看次数

如何用ant展平zip文件的顶级文件夹?

很多zip文件都有一个根文件夹,如何解压缩zip文件并删除根文件夹?

我知道有globmapper:

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <mapper>
        <globmapper from="rootFolder/*" to="*" />
    </mapper>
</unzip>
Run Code Online (Sandbox Code Playgroud)

但是,如果我不知道根文件夹的名称呢?通配符不起作用,例如

<globmapper from="root*Folder/*" to="*" />
Run Code Online (Sandbox Code Playgroud)

有没有办法使用通配符或没有根文件夹进行upack的映射器/函数?

ant zip unzip mapper

4
推荐指数
1
解决办法
1736
查看次数

Ant - 任务和目标之间的区别

我是新来的蚂蚁,并了解它的一些基本的东西,喜欢有困难tasktarget.

在线文档和书籍说这target是整个构建过程的一个阶段,同时task也是最小的工作.但是,我发现很难理解这究竟是什么意思,

有人可以用实例深入解释Ant 中的targets和tasks是什么?

java ant build

4
推荐指数
1
解决办法
3056
查看次数

标签 统计

ant ×10

java ×4

javac ×2

build ×1

eclipse ×1

gradle ×1

jenkins ×1

mapper ×1

maven ×1

pmd ×1

rhino ×1

unzip ×1

zip ×1