我想讓我的NetBeans項目在竹子中構建。它大部分似乎都在工作,但我無法在構建NetBeans時啓動我的項目。如何將NetBeans ant build移植到構建服務器(Atlassian Bamboo)
當我構建netbeans時,它(通過默認的ant build)將我的相關庫粘貼到一個名爲dist/lib/commons-math3-3.6.1.jar的目錄中,我的jar創建於:dist/MyJar.jar 。我可以通過鍵入運行我的罐子
java -jar MyJar.jar
它會找到我的依賴庫。但是,當我建立竹子時,有一點不同,我注意到哪些是我的庫沒有複製到dist/lib /。但由於他們在我的項目的根本不是一個問題,我只是繼續並從我的/ libs /到/ dist/lib /重新複製他們,然後我嘗試「java -jar MyJar.jar」命令,但我得到這個錯誤:
[email protected]:~dist/$ java -jar MyJar.jar
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/math3/stat/descriptive/moment/StandardDeviation
at readnthvalue.App.<clinit>(App.java:26)
at readnthvalue.MainFrame.<init>(MainFrame.java:31)
at readnthvalue.MainFrame.lambda$main$0(MainFrame.java:365)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.stat.descriptive.moment.StandardDeviation
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 17 more
任何想法或建議從螞蟻和atlassian竹知識的人是非常感謝。
我應該提到,md5sum不同於工作罐和用竹子建造的工作罐。
我用命令:螞蟻乾淨的jar命令行來構建
UPDATE 2017年8月4日
我注意到,竹我得到這個:
build 04-Aug-2017 14:02:51 -do-jar-jar:
build 04-Aug-2017 14:02:51 [j2seproject1:jar] Building jar: /home/filtec/bamboo-home/xml-data/build-dir/AUR-ATP-JOB1/dist/auratec-helper.jar
build 04-Aug-2017 14:02:51 [echo] To run this application from the command line without Ant, try:
build 04-Aug-2017 14:02:51 [echo] /home/filtec/jdk1.8.0_65/jre/bin/java -cp /home/filtec/bamboo-home/xml-data/build-dir/AUR-ATP-JOB1/libs/jfreechart-1.0.19.jar:/home/filtec/bamboo-home/xml-data/build-dir/AUR-ATP-JOB1/libs/jcommon-1.0.23.jar:/home/filtec/bamboo-home/xml-data/build-dir/AUR-ATP-JOB1/libs/commons-math3-3.6.1.jar:/home/filtec/bamboo-home/xml-data/build-dir/AUR-ATP-JOB1/libs/jSerialComm-1.3.11.jar:/home/filtec/bamboo-home/xml-data/build-dir/AUR-ATP-JOB1/dist/auratec-helper.jar filtec.auratec.MainFrame
但在NetBeans中我得到這個輸出:
Building jar: /home/james/NetBeansProjects/auratec-helper/dist/auratec-helper.jar
To run this application from the command line without Ant, try:
java -jar "/home/james/NetBeansProjects/auratec-helper/dist/auratec-helper.jar"
所以我想我的新更新的問題是爲什麼在我的工作站上,在竹服務器上的構建與行爲不同。什麼是未複製的依賴jar以及爲什麼我能夠使用-jar選項來運行文件,在構建服務器上我需要使用vanilla java在從竹服務器上的ant腳本構建時運行。
首先,你不應該在dist文件夾中放置任何東西。它只用於構建,並且每次都會清理乾淨。 Colud包你netbeans項目歸檔並通過任何可用的服務分享它。例如:http://dropcanvas.com –
我可能正在遵循dist dir的最佳實踐,並使用NetBeans默認行爲擦除dist dir clean並將發佈jar複製到dist文件夾中。順便說一下,它的NetBeans最初是通過它的默認構建腳本來完成的。 – simgineer
這裏是我的項目的鏈接:https://drive.google.com/open?id = 0B5FRf3pjR6UBQmVRY1B4QlB4a2M – simgineer