小编mar*_*ton的帖子

当maven-antrun-plugin失败时,maven构建失败

我正在运行一个Ant任务,使用maven-antrun-plugin在maven中运行junit测试.调用如下所示:

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <id>ant-test</id>
      <phase>test</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <tasks unless="maven.test.skip">
          <ant antfile="${basedir}/build.xml" target="test">
            <property name="build.compiler" value="extJavac" />
          </ant>
        </tasks>
      </configuration>
    </execution>
</executions>
</plugin>  
Run Code Online (Sandbox Code Playgroud)

当测试失败时,构建继续并报告成功.我尝试仅使用ant重现此行为(从命令行'ant -f example.xml'运行Ant):

<project name="example" basedir="." default="aa">
<target name="aa">
  <ant antfile="build.xml" target="test" />
</target>
</project>
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,一切都如预期:第一次测试失败停止构建并报告它不成功.它看起来像maven做了一些魔术(或以另一种方式调用蚂蚁).

所以我的问题是如何在解决测试任务失败时如何实现失败的maven构建的效果.

ant maven-2

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

如何使用ant转储MySQL数据库?

我找不到有关如何使用ant任务转储MySQL数据库的任何信息.

我是否必须创建自己的任务才能执行此操作?

ANT script ===generate==> myDataBase.sql
Run Code Online (Sandbox Code Playgroud)

java mysql ant mysqldump

10
推荐指数
2
解决办法
5767
查看次数

如何将参数传递给Ant的Junit测试?

我在Ant下使用Junit来执行Selenium Test.My测试用例需要读取包含测试数据的文件(为了完成数据驱动测试).我不介意在测试用例中嵌入文件名,但是我想在build.xml文件中参数化存储数据文件的目录的名称.

从build.xml传递信息到测试用例的最佳方法是什么?使用ant属性是个好主意吗?是否可以从build.xml注入Junit4参数?

ant junit selenium junit4

10
推荐指数
1
解决办法
8386
查看次数

10
推荐指数
1
解决办法
3461
查看次数

如何在Ant'UliveRegExp'任务中执行数学函数?

我需要从Ant构建脚本中增加源文件中的数字.我可以使用该ReplaceRegExp任务来查找我想要增加的数字,但是如何在replace属性中增加该数字呢?

这是我到目前为止所得到的:

<replaceregexp file="${basedir}/src/path/to/MyFile.java"
    match="MY_PROPERTY = ([0-9]{1,});"
    replace="MY_PROPERTY = \1;"/>
Run Code Online (Sandbox Code Playgroud)

在replace属性中,我该怎么做

replace="MY_PROPERTY = (\1 + 1);"
Run Code Online (Sandbox Code Playgroud)

我无法使用该buildnumber任务将值存储在文件中,因为我已经在同一个构建目标中使用它.是否有另一个蚂蚁任务可以让我增加一个属性?

regex ant

9
推荐指数
1
解决办法
4193
查看次数

用ant编译源树的一部分

假设我在src/tree中有我的源代码(可能在我的测试/树中).说我想只编译那棵树的一部分.我可能想要这样做的原因是多种多样的.作为一个例子,我可能想要创建尽可能小的jar(不包括某些类),或者我可能想要编译的最快的编译时间.我绝对想编译所有的依赖项!

这可以通过以下命令行轻松实现:

javac -d build/ -cp whatever -sourcepath src src/path/to/MyClass.java
Run Code Online (Sandbox Code Playgroud)

现在,你怎么能用蚂蚁做到这一点?javac ant 任务编译所有内容:

将递归扫描源和目标目录以查找要编译的Java源文件.

可以使用excludesincludes参数,但它们是有问题的.事实上,它似乎是一个有明确设置所有的includes(不是自动的依赖查找),并且即使最差的是排除优先于包括:

当使用包含和排除时,仅使用与至少一个包含模式匹配且与任何排除模式不匹配的文件/目录.

因此,你不能使用

<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath"
            excludes="**/*.java" includes="src/path/to/MyClass.java" />  
Run Code Online (Sandbox Code Playgroud)

因为它不会编译任何东西:-(

有没有办法javac用ant 实现这个简单的命令行?


编辑:谢谢你的回答,萨迪,我接受了,因为它确实以我在这个问题中想知道的方式工作.但是我有几条评论(在你的答案的评论栏中太长了):

1)我确实阅读了文档(参见上面的链接),但目前还不清楚只是includes你实际上也排除了其他一切

2)当你只是includes蚂蚁记录类似的东西

[javac] Compiling 1 source file to /my/path/to/build
Run Code Online (Sandbox Code Playgroud)

即使依赖项使其编译(多)只是一个源文件.

java ant jar javac

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

如何使Ant INCLUDE文件集优先于EXCLUDE

如果我有这样的文件集:

<fileset dir=".">
  <exclude name="classes/*"/>
  <include name="**/zar.class"/>   
</fileset>
Run Code Online (Sandbox Code Playgroud)

排除优先于include,我不会以任何类结束.[因为对于这个假设的例子,zar.class在类dir中]我想包含zar文件,即使它在类dir中.

我暂时对抗这个问题,阅读有关选择器,模式集,文件集,尝试组合文件集等但无法使其正常工作.

有人知道怎么做吗?

ant include fileset

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

什么是bash shell中的'$$'?

我是bash shell编程的初学者.你能告诉我bash shell中的'$$'符号吗?

如果我尝试以下

#> echo $$
Run Code Online (Sandbox Code Playgroud)

它打印

#>18756
Run Code Online (Sandbox Code Playgroud)

你能告诉我这个符号的用途和时间吗?

linux bash shell

9
推荐指数
1
解决办法
1594
查看次数

Java - 当我使用PrintWriter,BufferedWriter和FileWriter编写时如何从文件中读取?

我有一些方法将一些数据写入文件.我使用PrintWriter,BufferedWriter并且FileWriter如下所示

public void writeToFile(String FileName){
    PrintWriter pw = null;
    try {
        pw = new PrintWriter(new BufferedWriter(new FileWriter(FileName)));
        for(Cars car : list){
            pw.println(car.getType());
            pw.println(car.getMaxSpeed());
            pw.println(car.getOwner());
            pw.println();
            pw.flush();
        }
        pw.close();
    }
    catch(IOException ex){
        System.err.println(ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我如何从文件中读取这些数据?我试图用InputStreamReader,BufferedReaderFileInputStream,但我的NetBeans显示我的错误信息

    public void readFromFile() throws IOException {
        InputStreamReader fr = null;
        try {
            fr = new InputStreamReader(new BufferedReader(new FileInputStream(new FileReader("c:\\cars.txt"))));
            System.out.println(fr.read());
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        } finally {
            fr.close();
        }
    }  
Run Code Online (Sandbox Code Playgroud)

这种方法有什么问题?

java methods file

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

仅从完整路径获取文件名

我正在使用Ant脚本通过以下方式获取目录的内容:

<ac:foreach target="process-test" param="the_file" delimiter=",">
    <path>
        <fileset dir="${test.suite.url}">
            <include name="**/*.html"/>
            <exclude name="**/cases/"/>
        </fileset>
    </path>
</ac:foreach>
Run Code Online (Sandbox Code Playgroud)

这是返回文件的完整路径(这也是我需要的东西)但是,是否可以剥离路径并给我一个文件名?

ant

8
推荐指数
1
解决办法
6119
查看次数

标签 统计

ant ×8

java ×3

bash ×1

file ×1

fileset ×1

include ×1

jar ×1

javac ×1

junit ×1

junit4 ×1

linux ×1

maven-2 ×1

methods ×1

mysql ×1

mysqldump ×1

nant ×1

regex ×1

selenium ×1

shell ×1