這個星期接到一個新的任務:解決HQ(一個用JAVA開發的開源的運維監控平臺)如今遇到的snmp升級到3.0後bug。公司用的HQ是4.6版本。因而,我把項目從gitlab上clone下來後,就開始了個人填坑之旅。坑了幾天坑,到目前,正常狀況,應該只有最後一個坑了,應該是關於tomcat運行環境的。閒話很少說,開始填坑之旅……java
項目maven build坑:mysql
clean compile install -Dmaven.javadoc.skip=true -DCI-build -Dall-installers -Dmaven.test.skip=true -e
解釋一下吧,用maven.javadoc.skip=true是由於項目中的註釋,有太多太可能是不符合javadoc規範的,因此若是編譯javadoc的話,會出現一推警告,而後編譯失敗。git
assembly.xml:github
pom.xmlweb
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin>
OK,到如今爲止,我遇到的maven的build坑基本差很少了。通過上面的改造後,個人hq項目可以install成功了。不過,install成功後,本地運行hq-web項目時,遇到的坑,深坑,比build過程要艱難的多,在這裏我也記錄一下,與君共勉。sql
hq-web 項目運行遇到的坑:apache
Add the following properties to ~/.hq/build.properties to connect the schema installer, hq-web app, or integration tests to your DB: server.database-url=jdbc:mysql://localhost:3306/hqdb server.database-driver=com.mysql.jdbc.Driver server.database=MySQL server.database-user=hq server.database-password=hq server.admin.username=hqadmin server.admin.password=hqadmin
生成hyperic.keystore 證書的密碼爲:hyperic(記住,這個證書密碼必須是這個,否則會出錯),由於我是想進行項目的debug,因此我修改了源碼中對證書路徑的校驗代碼,讓我能夠指定證書的文件路徑,經過jvm的運行參數:文件爲:org.hyperic.hq.security.ServerKeystoreConfig:68tomcat
// ...make sure this exists if (!keystoreFile.exists()) { /** * 添加keystore path的自定義參數路徑 */ String keystorePath = System.getProperty("yiji.hq.keystore.path"); if(keystorePath != null){ keystoreFile = new File(keystorePath); if(!keystoreFile.exists()){ throw new ConfigPropertyException("The keystore path [" + keystoreFile.getPath() + "] does not exist. If setting a relative path, it must be relative to the server's hq-server directory."); } } // throw new ConfigPropertyException("The keystore path [" + keystoreFile.getPath() + "] does not exist. If setting a relative path, it must be relative to the server's hq-server directory."); }
keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"
-Dyiji.hq.keystore.path=/Users/QianL/Desktop/hyperic.keystore -server -Xms1024m -Xmx2048m -XX:PermSize=512M -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m
我通過上面的折騰後,項目就能夠經過IDEA進行tomcat debug運行調試了。服務器
其實項目的坑遠不止這些,不如若是使用tomcat插件運行的,還會報 sigar包找不到本地的動態庫文件 和 找不到 hq-plugins 插件目錄的異常,不過若是是經過我上面的那種運行方式,這兩個以上我都沒有遇到了。app
後面有時間我也把官方目前最新的HQ5.8的build 成功的經驗寫上來。