我最近被分配了一项任务,让 ant 能够为不同的环境构建战争包。除了一项功能外,我几乎完成了。
蚂蚁env通过 like接受一个参数-Denv=DEV,并使用不同的配置文件来制作 war 包。但默认目标是start构建、部署和启动 tomcat。当我传入-Denv=PRODarg时,我不希望 ant 部署战争也不启动服务器。我只想用蚂蚁来构建ROOT.war。够了。
我知道我可以再输入一个词来实现这个目标,但你知道我们都很懒惰。:D
有谁知道如何根据命令行参数更改默认目标?我的要求如下:
ant -Denv=DEV 将构建、部署和启动服务器ant -Denv=PROD 只会构建 ROOT.war我正在参加正式巡演。今天,我在做rot13reader 练习时遇到了一些奇怪的事情。
问题是当我使用break而不是return ttl, io.EOF,程序进入无限循环。但是,据我所知,在这个程序中,应该没有任何区别,break或者return ttl, io.EOF因为如果是break,下一行将return ttl, err在Read()方法的末尾,这与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)