小编Tom*_*mas的帖子

运行gradle任务时如何在命令行中传递多个参数?

我有一个由gradle任务运行的java和groovy类.我设法让它工作,但我不喜欢我必须在命令行中传递参数的方式.以下是我目前通过命令行执行的操作:gradle runTask -Pmode"['doStuff','username','password']"
我的build.gradle代码采用这些参数,如下所示:

if (project.hasProperty("mode")) {
args Eval.me(mode)}
Run Code Online (Sandbox Code Playgroud)

然后我在我的java代码中使用我的参数/参数,如下所示:

String action = args[0]; //"doStuff"
String name = args[1]; .. //"username"
Run Code Online (Sandbox Code Playgroud)

我想知道有没有办法以更好的方式传递参数,例如:

gradle runTask -Pmode=doStuff -Puser=username -Ppass=password 
Run Code Online (Sandbox Code Playgroud)

以及如何在我的java类中使用它们.

java gradle build.gradle

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

Aws lambda描述实例超时

我有这个简单的描述实例函数,我试图通过AWS Lambda在nodejs中运行:

var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';

exports.handler = function(event, context) {
    console.log("\n\nLoading handler\n\n");
    var ec2 = new AWS.EC2();
    ec2.describeInstances(function(err, data) {
        console.log("\nIn describe instances:\n");
      if (err) {
        console.log(err, err.stack); 
        context.done(null, 'Function Finished from error!');  // an error occurred
      }else {   
        console.log("\n\n" + data + "\n\n");
        context.done(null, 'Function Finished with data!');   // successful response 
      }
    });
};
Run Code Online (Sandbox Code Playgroud)

这不会给我带来任何错误,CloudWatch中唯一的输出是:

2016-03-21T17:01:59.085Z xxxxxxx-xx.... Task timed out after 3.00 seconds
Run Code Online (Sandbox Code Playgroud)

任何人都知道可能是什么问题?

timeout amazon-ec2 amazon-web-services node.js aws-lambda

13
推荐指数
2
解决办法
5162
查看次数

如何从自身内部检测 aws 实例的状态?

我在 EC2 中有 Auto Scaling 组,我想检测实例终止时的状态,以便我可以在终止之前开始导出日志文件。

我知道一种方法是使用自动缩放生命周期挂钩,但根据我的理解,我将不得不使用外部监视器,然后它必须通过 ssh 进入实例并导出日志文件。理想情况下,我想找到一种如何从内部检测实例状态的方法(当自动缩放组发送命令终止它时),这样它就可以自己进行导出,而无需与任何其他实例进行通信。任何人都会知道是否可以这样做,如果可以,我可以从哪里开始?

amazon-ec2 amazon-web-services

6
推荐指数
2
解决办法
1337
查看次数

如何使用NodeJs请求GET模块发送cookie?

我正在研究NodeJs中的一个项目,该项目要求我登录以获取在检索数据时使用的cookie.我有以下代码成功登录并返回一个格式正确的cookie:

 var request = require('request');

var requestData = {
  "username":"myUsername",
  "password":"myPassword"
  }

//request post request
request({
    url: 'http://localhost/login',
    method: "POST",
    json: requestData}
    ,function(err, res) {
        if(err){
            console.log("it did not work: " + err)
        }

            console.log(res.statusCode)//logs as 201 sucess
            console.log("heres the cookie: "+res.headers['set-cookie']) //returns cookie in correct format
            var cookie = res.headers['set-cookie']
            //requesting data
            request({
              url: 'http://localhost/delivery-stats',
              method: "GET",
              header: {
                'set-cookie': cookie
              }
            },function(err,response){
                console.log(response.headers) // one of the headers says user is not authorised

            }
            )

});
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试使用附加了cookie的GET请求时,它表示用户未经授权,这意味着cookie未正确传递,任何人都会知道如何使用请求模块执行此操作?谢谢

javascript cookies request node.js

5
推荐指数
2
解决办法
6722
查看次数

如何用符号修剪/剪切java中的字符串?

我正在开发一个项目,我的API在其结尾处返回带有id的url,我想将其解压缩以用于另一个函数.这是url的示例:

 String advertiserUrl = http://../../.../uuid/advertisers/4 <<< this is the ID i want to extract.
Run Code Online (Sandbox Code Playgroud)

目前我正在使用java的字符串函数substring(),但这不是最好的方法,因为ID可能会成为3位数字,我只会得到它的一部分.继承了我目前的做法:

String id = advertiserUrl.substring(advertiserUrl.length()-1,advertiserUrl.length());
System.out.println(id) //4
Run Code Online (Sandbox Code Playgroud)

它适用于这种情况,但如果id是例如"123",我只会在使用子字符串后得到它为"3",所以我的问题是:有没有办法用破折号"/"剪切/修剪字符串?让我说当前网址中的theres 5 /所以字符串在检测到第五个破折号后会被切断?任何其他合理的方法也会有所帮助.谢谢.

url中的ps uuid也可能在长度上有所不同

java regex string

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

如何在nodejs中压缩流?

我正在努力完成一项非常简单的任务,但我有点困惑,并坚持在nodejs中使用zlib.我正在构建功能,包括我从aws S3下载文件gziped,解压缩并逐行读取.我想用流完成所有这些,因为我相信它可以在nodejs中完成.

这是我目前的代码库:

//downloading zipped file from aws s3:
//params are configured correctly to access my aws s3 bucket and file

s3.getObject(params, function(err, data) {
  if (err) {
    console.log(err);
  } else {

    //trying to unzip received stream:
    //data.Body is a buffer from s3
    zlib.gunzip(data.Body, function(err, unzippedStream) {
      if (err) {
        console.log(err);
      } else {

        //reading line by line unzziped stream:
        var lineReader = readline.createInterface({
          input: unzippedStream
        });
        lineReader.on('line', function(lines) {
          console.log(lines);
        });
      }
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

 readline.js:113

        input.on('data', ondata); …
Run Code Online (Sandbox Code Playgroud)

zlib stream gunzip node.js

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

每次在nodeJs中调用函数时如何生成唯一的UUID?

所以我正在开发这个项目,在那里我导出一些包含敏感信息的数据文件,我想为每个数据文件生成uuid.我正在使用节点uuid模块,但每次运行我的函数时,UUID实际上是相同的,旧文件被新文件覆盖,因为它的UUID是相同的.这里剪了我的代码:

var nodeUuid = require('node-uuid');
var uuid = nodeUuid.v4();

function createFile(){
    var filename = 'reports-'+uuid+'.txt';
}
...
createFile();
Run Code Online (Sandbox Code Playgroud)

所以每当我调用函数createFile()时,我得到相同的UUID,我的文件被覆盖了,知道如何为每个新文件实际生成唯一的id?

javascript uuid node.js

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

如果任何条件为false,如何从for循环返回false

我正在研究一个函数,如果任何一个点位置在定义的矩形边界之外,它应该返回false.

我目前的c ++代码如下:

bool trackingPointsVisible(){
        //I've got 4 points here
        if(!points.empty()){
              // loop through each of the points
            for(int i=0; i<points.size(); i++){
                   //check if points' x and y positions are out of the boundaries
                if(points[i].x < -60 || points[i].x > 300 ||
                points[i].y < -60 || points[i].y > 300){
                   // if any of them are out return false 
                    return false;
                }else{
                   //if they're within the boundaries, return true
                    return true;
                }

            }
        }
  }
Run Code Online (Sandbox Code Playgroud)

由于某种原因,true即使其中一个点超出指定的边界,它也会返回.我不认为应该是这种情况.我应该重写这个功能并单独检查每个点还是有另一种方法?

谁能指出我在这里做错了什么?谢谢.

c++ for-loop if-statement boolean return

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