小编Jam*_* Ni的帖子

通过命令行参数更改默认蚂蚁目标

我最近被分配了一项任务,让 ant 能够为不同的环境构建战争包。除了一项功能外,我几乎完成了。

蚂蚁env通过 like接受一个参数-Denv=DEV,并使用不同的配置文件来制作 war 包。但默认目标是start构建、部署和启动 tomcat。当我传入-Denv=PRODarg时,我不希望 ant 部署战争也不启动服务器。我只想用蚂蚁来构建ROOT.war。够了。

我知道我可以再输入一个词来实现这个目标,但你知道我们都很懒惰。:D

有谁知道如何根据命令行参数更改默认目标?我的要求如下:

  1. ant -Denv=DEV 将构建、部署和启动服务器
  2. ant -Denv=PROD 只会构建 ROOT.war

java ant build-automation build-process build

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

实现 io.Reader 时在无限循环中中断与返回的不同行为

我正在参加正式巡演。今天,我在做rot13reader 练习时遇到了一些奇怪的事情。

问题是当我使用break而不是return ttl, io.EOF,程序进入无限循环。但是,据我所知,在这个程序中,应该没有任何区别,break或者return ttl, io.EOF因为如果是break,下一行将return ttl, errRead()方法的末尾,这与return ttl, io.EOF.

我想知道为什么。与 Go 如何处理 io.Reader 接口及其实现的底层机制有关吗?

这是代码。

package main

import (
    "io"
    "os"
    "strings"
)

type rot13Reader struct {
    r io.Reader
}

func (rr *rot13Reader) Read(b []byte) (n int, err error) {
    rb := make([]byte, 8)
    var ttl int
    for {
        n, err := rr.r.Read(rb)
        if err == io.EOF {
            return ttl, …
Run Code Online (Sandbox Code Playgroud)

interface break infinite-loop go

0
推荐指数
1
解决办法
49
查看次数