我想让我的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