Eclipse에서 프로젝트를 JAR로 자동 빌드


171

Java 프로젝트를 JAR에 자동으로 유지하려는 Eclipse 프로젝트가 있습니다. 프로젝트를 JAR로 내보낼 수있는 옵션이 있다는 것을 알고 있습니다. 마우스 오른쪽 버튼을 클릭하면 그러나 내가 실제로 찾고있는 것은 Eclipse와 같이 프로젝트 .class파일을 자동으로 빌드하여 대상 폴더에 넣는 것입니다. 또한 JAR을 자동으로 빌드하고 일부 또는 특정 위치에 최신 JAR을 복사해야합니다.

JAR을 자동으로 빌드하는 방식으로 Eclipse를 구성하는 옵션이 있습니까?

내 질문에 대답하기에 충분히 환자들에게 명확하게하기 위해; ANT를 해결책으로보고 있지 않습니다. 이미 사용하고 있지만 시간 기반 트리거 또는 변경으로 즉시 빌드를 통해 자동으로 시작되는 항목을 원합니다.


1
내 개인적인 의견 : Eclipse의 maven 통합 인 m2e를 사용하므로 빌드의 일부로 jar 파일을 출력합니다. 나는 최근 Maven없이 Eclipse를 사용하려고 시도했지만 기본 Java 빌더가 얼마나 원시적인지 믿을 수 없습니다.
Craig Ringer

1
2018 년에는 IDE 특정 기능 대신 빌드 도구를 사용하십시오. Maven은 IDE 독립성과 명령 줄 지원을 제공합니다.
Thorbjørn Ravn Andersen

@Craig Ringer-그렇게하는 방법에 관한 링크가 있습니까?
nsandersen

답변:


27

Apache Ant 확인

Eclipse를 사용한 자동 빌드에 Ant를 사용할 수 있습니다. 방법 은 다음과 같습니다.


나는 이미 빌드를하고 Jar를 만들기 위해 Apache ant를 사용하고 있습니다. 그러나 내가 실제로 찾고있는 것은 아파치 개미를 둘러싼 방법과 직접 일식을 사용하는 방법이었습니다.
Priyank 2016 년

사과, 나는 이전에 링크에서 기사를 거치지 않았다. 실제로 내가 필요한 것에 대해 이야기합니다. 감사.
Priyank 2016 년

1
Konrad의 답변은 OP가 찾고 있던 것과 더 밀접하게 일치합니다.
lycono

lycono, 나는 동의하지 않는다-OP는 항아리가 최신 상태를 유지하기를 원했고 항아리 파일을 내보내는 것이 그 문제를 해결하려고 시도하지 않습니다.
James Moore

1
2011 년 7 월, @Peter가 참조한 기사는 jar 파일을 작성하는 방법에 대해 이야기하지 않습니다.
제임스 무어

288

.jardesc파일 이 필요 합니다. 그들은 자동으로 시작되지 않지만 2 클릭 안에 있습니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오
  2. 고르다 Export > Java > JAR file
  3. 포함 된 파일을 선택하고 출력 JAR의 이름을 지정한 다음 Next
  4. "이 JAR의 설명을 작업 공간에 저장하십시오"를 확인하고 새 .jardesc파일 의 이름을 선택 하십시오.

이제 .jardesc파일을 마우스 오른쪽 버튼으로 클릭 하고 선택 Create JAR하면 같은 위치로 내보내집니다.


이 답변이 몇 달 전에 더 많은지지를 얻지 못했거나 안타깝습니다. 글쎄, 지금 콘라드는 사라졌다.
Dan Rosenstark

25
Eclipse Galileo에서 1 단계를 파일-> 내보내기-> Java-> JAR 파일로 바꿔야했습니다.
매트 허긴 스

9
'오른쪽 클릭-> JAR 작성'단계를 자동화하는 방법이 있습니까?
Asaf

4
'오른쪽 클릭-> JAR 작성'단계를 자동화하거나 키 콤보에 바인딩하는 방법이 있습니까?
Pacerier

5
"Export ...-> Java-> Runnable JAR 파일"을 사용하여 정확하게 만듭니다.
TedTrippin

70

Ant 파일을 작성하고 Eclipse에 빌드하도록 지시하십시오. 두 단계 만 있으며 각 단계별 지침을 통해 쉽게 수행 할 수 있습니다.


1 단계 build.xml 파일을 작성하고 패키지 탐색기에 추가하십시오.

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

이클립스는 아래 스크린 샷과 같은 모습이어야합니다. build.xml의 Ant 아이콘에 유의하십시오. Eclipse 프로젝트의 Build.xml

2 단계 프로젝트에서 루트 노드를 마우스 오른쪽 버튼으로 클릭합니다. -특성 선택-빌더 선택-새로 선택-Ant 빌드 선택-기본 탭에서 bin 폴더 의 build.xml 파일 경로를 완료하십시오 .

앤트 빌더 구성 빌드 단계-대상 탭

출력 확인

빌드 후 Eclipse 출력 창 (콘솔이라고 함)에 다음이 표시되어야합니다.

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

편집 : @yeoman 및 @betlista의 유용한 의견

@yeoman 나는 대부분의 사람들이 패키지를 사용하므로 클래스 파일에 대한 재귀 적 검색이 플랫 포함보다 더 의미가 있기 때문에 올바른 포함은 * .class가 아니라 /.class라고 생각합니다.

@betlista src 폴더에 build.xml을 사용하지 않는 것이 좋습니다.


2
예, 다음과 같이 빌드 단계의 대상을 선택할 수 있습니다. 정리 후, ​​수동 빌드, 자동 빌드 및 정리 중. 자동 빌드는 :) 원하는 무엇을 제공해야합니다
토마스 브랫에게

8
두 가지를 모두 시도한 후에이 솔루션은 Konrad의 솔루션보다 훨씬 나아 보입니다. 빌드 파일에서 일부 경로를 수동으로 파악해야하지만 2 번이 아닌 자동 빌드가 가능하고 쉽게 사용자 정의 할 수 있습니다 (예 : 빌드 후 jar 복사). 루트에 빌드 파일이 있고 여러 개의 중첩 된 레벨의 패키지가있을 때 jar 파일을 빌드하는 방법은 다음과 같습니다.<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi

3
+1 어떻게 대답이 받아 들여 지거나 가장 많이 투표되지 않습니까?
Juan Garcia

2
대단히 감사합니다. build.xmlsrc 폴더 에 넣지 말 것을 권장 하지만 나머지는 훌륭하고 훌륭합니다!
Betlista

1
대부분의 사람들이 패키지를 사용하므로 클래스 파일에 대한 재귀 적 검색이 플랫 포함보다 더 의미가 있기 때문에 올바른 포함은 * .class가 아닌 / .class 라고 생각합니다 . 답변이 정상적으로 작동하지 않기 때문에 그때까지 내 +1을 제거합니다.
yeoman

13

이것은 일식에서 커스텀 빌더를 정의하여 가능합니다 (Peter 's answer의 링크 참조). 그러나 프로젝트가 매우 작지 않으면 작업 공간이 허용 할 수없이 느려질 수 있습니다. 클래스 파일의 자동 빌드는 증분 방식으로 수행됩니다. 즉, 변경의 영향을받는 클래스 만 다시 컴파일되지만 변경 사항을 저장할 때마다 JAR 파일을 완전히 다시 작성하고 복사해야합니다.



1

위의 Thomas Bratt 의 답변을 사용 하여 build.xml이 올바르게 구성되어 있는지 확인하십시오.

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

이중 별표에 주목하십시오 -모든 하위 디렉토리에서 .class 파일을 찾도록 빌드에 지시합니다.


0

2 개의 프로젝트가 동일한 외부 도구 빌드 이름을 가질 수 없으므로 빌더 실행기를 작성하는 것은 문제입니다. 각 이름은 고유해야합니다. 현재 빌드를 자동화하고 JAR을 외부 위치에 복사하기 위해이 문제에 직면하고 있습니다.

IBM의 Zip Builder를 사용하고 있지만 도움이 될 수는 있지만 실제로는하지 않습니다.

사람들은 IBM ZIP Creation 플러그인을 사용해 볼 수 있습니다. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.