2016-07-23 2 views
1

NetBeans 프로젝트를 대나무로 빌드하고 싶습니다. 대부분은 작동하는 것처럼 보이지만 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 /에서 그들을 recopy 및 다음 "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은 작업 항아리와 대나무로 만든 것과 다릅니다.

내가 명령을 사용 : 나는 대나무에 내가 얻을 것으로 나타났습니다

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" 

그래서 새로운 업데이트 된 질문은 왜 내 워크 스테이션과 동작이 다른 대나무 서버의 빌드인지 아닌지입니다. 종속 항아리가 복사되지 않고 빌드 서버에서 bamboo 서버의 ant 스크립트로 빌드 할 때 vanilla java를 사용해야하는 경우 -jar 옵션을 사용하여 파일을 실행할 수있는 이유는 무엇입니까?

+0

우선, dist 폴더에 아무것도 넣지 않아야합니다. 빌드에만 사용되며 매번 청소됩니다. Colu 당신은 netbeans 프로젝트를 압축하여 모든 사용 가능한 서비스를 통해 공유 할 수 있습니다. 예 : http://dropcanvas.com –

+0

dist 디렉토리에 대한 모범 사례를 따르고 있으며 NetBeans 기본 동작을 사용하여 dist 디렉토리를 지우고 릴리스 jar를 dist 폴더에 복사하는 것이 좋습니다. NetBeans를 처음에는 기본 빌드 스크립트로 사용합니다. 여기 – simgineer

+0

은 내 프로젝트에 대한 링크입니다. https://drive.google.com/open?id=0B5FRf3pjR6UBQmVRY1B4QlB4a2M – simgineer

답변

0

이것은 알아낼 고통이었습니다. 기본적으로 copylibstask.jar은 대나무에서 개미가 사용할 수 있어야하지만 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 파일이 다시 실행 가능합니다.

관련 문제