2016-07-23 9 views
1

NetBeansプロジェクトをbambooでビルドしたいと考えています。そのほとんどは機能しているようですが、NetBeansをビルドするときにできるようにプロジェクトを立ち上げることはできません。NetBeans Antビルドをビルドサーバーに移植する方法(Atlassian Bamboo)

私はnetbeansをビルドすると(デフォルトのantビルドで)、自分の依存するライブラリをdist/lib/commons-math3-3.6.1.jarというディレクトリに貼り付け、私のjarファイルを作成します:dist/MyJar.jar 。私は私の瓶を実行することができます

java -jar MyJar.jar 

それは私の依存するライブラリを見つけるでしょう。しかし、私が竹で作ったときには、私のライブラリがdist/lib /にコピーされていないことに気がついたことが一つあります。しかし、彼らは私のプロジェクトの根本にあるので、私は単に先に進み、私の/ libs/to/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 

任意の考えやアドバイスは大歓迎です。

md5sumは、作業用のjarファイルとbambooファイルで作成されたファイルとは異なります。

私はコマンドを使用します。私は竹の上に私を得ることに気づいた

UPDATE 2017年8月4日

コマンドラインからビルドするためのAntきれいな瓶をこの:

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ファイルはコピーされません。なぜビルドサーバー上でbambooサーバーのantスクリプトからビルドするときにvanilla javaを使用する必要があるのか​​、-jarオプションを使用してファイルを実行できます。

+0

まず、distフォルダには何も置かないでください。ビルド専用で、毎回きれいになります。あなたはネットビーンズプロジェクトをパックして、利用可能なサービスを介してアーカイブし共有することができます。 ex:http://dropcanvas.com –

+0

おそらくdistディレクトリのベストプラクティスに従っていて、NetBeansのデフォルトの動作を使ってdistディレクトリを消去し、リリースjarをdistフォルダにコピーしています。 NetBeansは、もともとデフォルトのビルドスクリプトを使ってNetBeansを実行しています。 – simgineer

+0

ここに私のプロジェクトへのリンクがあります:https://drive.google.com/open?id=0B5FRf3pjR6UBQmVRY1B4QlB4a2M – simgineer

答えて

0

これはわかりやすいものでした。基本的にcopylibstask.jarは、竹でantに利用できる必要がありましたが、NetBeansがビルドサーバーにインストールされていないため、手動で参照する必要があります。私はコピーを/libs/org-netbeans-modules-java-j2seproject-copylibstask.jarに置き、project.propertiesファイルでそれを参照しています。

# this is needed for the ant build 
libs.CopyLibs.classpath=libs/org-netbeans-modules-java-j2seproject-copylibstask.jar 

ライブラリは現在コピーされており、jarファイルは再び実行可能です。

関連する問題