sonarqube JVM参数的变量替换

时间:2016-03-11 22:23:18

标签: sonarqube sonarqube-ops

尝试在sonar.properties

下添加以下选项
sonar.web.javaOpts=-Xmx1g -Xms1g -XX:MaxPermSize=160m -XX:+PrintCommandLineFlags -Djava.net.preferIPv4Stack=true \
 -Xloggc:"/data/sonarqube/logs/gc-$(date +%Y-%m-%d_%H%M).log" -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 \
 -XX:GCLogFileSize=10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/sonarqube/logs

但是,sonarqube无法以下面的消息开始

  

错误:无法找到或加载主类+%Y-%m-%d_%H%M).log

不确定如何让评估发生,任何人都可以提供帮助吗?

由于 拉维

1 个答案:

答案 0 :(得分:0)

不支持脚本变量替换public class SingUp extends Activity { DatabaseHelper helper=new DatabaseHelper(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.signup); } public void OnSignUp(View v){ if (v.getId()==R.id.Bsingup){ EditText name= (EditText)findViewById(R.id.Tfname); EditText username= (EditText)findViewById(R.id.Tfusername); EditText email= (EditText)findViewById(R.id.Tfemail); EditText pass1= (EditText)findViewById(R.id.Tfpass1); EditText pass2= (EditText)findViewById(R.id.Tfpass2); String namestr = name.getText().toString(); String usernamestr = username.getText().toString(); String emailstr = email.getText().toString(); String pass1str = pass1.getText().toString(); String pass2str = pass2.getText().toString(); if(!pass1str.equals(pass2str)){ Toast pass=Toast.makeText(SingUp.this, "Paasword not match!", Toast.LENGTH_SHORT); pass.show(); } else{ Contact c =new Contact(); c.setName(namestr); c.setEmail(emailstr); c.setUsername(usernamestr); c.setPass(pass1str); helper.insertContact(c); } } } } ,因为shell不会读取/执行此属性。

无论如何,我不认为这是旋转GC日志的正确方法,因为文件名在启动应用程序时只会被解析一次。 $(date...)就够了。旋转索引会自动附加到文件名(例如-Xloggc:/data/sonarqube/logs/gc.log)。有关详细信息,请参阅https://stackoverflow.com/a/12277309/229031http://bugs.java.com/view_bug.do?bug_id=6941923