답변:
다음은 인 IntelliJ (10)와 함께 항아리를 구축하는 방법 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
File-> Project Structure-> Project Settings-> Artifacts-> 클릭 green plus sign-> Jar->From modules with dependencies...
위의 "skeleton"은 jar가 저장 될 위치로 설정됩니다. 실제로 빌드하고 저장하려면 다음을 수행하십시오.
대상 항아리로 추출
확인
빌드 | 유물 제작 | 짓다
에서 .jar 파일을 추출하십시오.
ProjectName | 아웃 | 유물 | ProjectName_jar | ProjectName.jar
이것은 2017 년 여전히 문제이며, 누군가에게 도움이되기를 바랍니다. IntelliJ 2017에서 작동하는 jar를 만들 수있는 두 가지 가능성을 발견했습니다 .2
1. IntelliJ에서 아티팩트 생성 :
매니페스트 디렉토리를 변경해야합니다.
<project folder>\src\main\java
"java"를 "resources"로 교체
<project folder>\src\main\resources
이것이 다음과 같이 보일 것입니다 :
그런 다음 항아리에 포장하려는 종속성을 선택하거나 항아리 파일 근처에
아티팩트를 빌드하려면 아티팩트를 빌드하고 "다시 빌드"를 선택하십시오. jar 파일과 그 종속 항목이있는 "out"폴더를 만듭니다.
2. maven-assembly-plugin 사용
pom 파일에 빌드 섹션 추가
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
이 절차는 "target"폴더 아래에 jar 파일을 생성합니다
no main manifest attribute
위의 솔루션 을 채택하고 있었습니다 . 아무도을 변경하는 것에 대해 언급하지 않았습니다 path to manifest
. Thnx !!
최근 에이 문제가 있었으며 이전 솔루션이나 링크에 세부 정보가 없으면이 단계를 쉽게 수행 할 수 있다고 생각합니다.
.jar
IntelliJ IDEA 14.1.5를 사용하여 작성하는 방법 :
다음은 maven 프로젝트의 단계별 예입니다.
pom.xml에서 maven-jar-plugin을 추가하십시오.
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>somePackage.sample</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
화면 캡처 : 4. 검색 아이콘을 클릭하고 maven을 입력하여 maven 프로젝트 상자를 엽니 다.
MANIFEST.MF는 resources 폴더에 있어야하고 Main.Class는 {package}-{class-name-that-contains-main-class}를 참조해야합니다.
아마 조금 늦었지만 winrar로 열고 META-INF 폴더에서 ECLIPSEF.RSA 및 ECLIPSEF.SF를 삭제하고 "Main-class : main_class_name"( ".class"없이) )에서 MANIFEST.MF. 마지막 줄 다음에 "Enter"를 두 번 눌렀는지 확인하십시오. 그렇지 않으면 작동하지 않습니다.
다중 모듈 Kotlin 앱 에서 항아리를 만들려고했는데 악명 높은 '주요 매니페스트 속성 없음'오류가 발생했습니다. 에 매니페스트 디렉토리를 생성 src/main/resources
해도 작동하지 않았습니다.
대신 src
직접 만들 때 작동합니다 src/META-INF/MANIFEST.MF
.
Maven을 사용하면이 플러그인을 사용할 수 있습니다.
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Maven ( http://maven.apache.org )을 살펴볼 수도 있습니다 . 응용 프로그램의 기본 빌드 프로세스로 사용하거나 구성 편집 대화 상자를 통해 특정 작업을 수행 할 수 있습니다. Maven 내에서 모듈의 JAR을 작성하는 프로세스는 사소한 자체 실행 가능 JAR에 모든 종속성을 포함시키려는 경우 상당히 간단합니다.
Maven을 사용한 적이 없다면 Maven으로 Better Builds 를 읽으십시오 .
프로젝트와 함께 타사 라이브러리를 사용하거나 MANIFEST.MF 파일을 제대로 작성하는 데 문제가있는 경우 다음을 사용하여 생성 된 JAR 파일을 실행할 때 충돌이 발생할 수 있습니다.
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
위에서 언급 한 방법.
대신 빈 JAR을 작성하고 다른 모든 요소를 출력 루트에 수동으로 추가하는 것이 좋습니다. 이 방법에 대한 멋진 블로그 문서는 여기에서 찾을 수 있습니다 : http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ 나는 단계가 언급 한 시도 다 잘 근무 나를 위해!
maven 프로젝트에서 IntelliJ IDEA 프로젝트를 다시 가져 오면 모든 변경 사항이 손실되므로 다른 답변 중 일부는 쓸모가 없습니다.
항아리의 건물은 실행 / 디버그 구성에 의해,하지 프로젝트 설정에 의해 트리거 될 필요가있다.
Jetbrains는 여기에 어떻게 이것을 할 수 있는지에 대한 좋은 설명이 있습니다.
https://www.jetbrains.com/help/idea/maven.html
"Maven 목표에 대한 트리거 구성"섹션으로 스크롤하십시오.
(설명의 유일한 단점은 스크린 샷이 최고 darcula 테마 대신 기본 흑백 색상 구성표라는 것입니다. Ugh!)
따라서 기본적으로 수행하는 작업은 "Maven Projects"패널을 열고 관심있는 프로젝트 (귀하의 경우 jar를 빌드하는 프로젝트)를 찾고 그 아래에서 실행하려는 maven 목표를 찾는 것입니다. , (일반적으로 "패키지"목표는 항아리를 생성합니다.) 컨텍스트 메뉴를 열고 (Windows 시스템을 마우스 오른쪽 단추로 클릭) "실행 / 디버그 전에 실행 ..."옵션이 있습니다. 거기에서 손으로 당신을 데려 갈 것입니다. 정말 쉽습니다.
내 문제는 이것이었다 : 나는 Intellij IDEA (다른 버전을 시도했다) + Gradle을 사용했다. 위의 응답에 표시된대로 프로젝트를 컴파일하고 artifacf jar를 빌드 할 때 "주요 매니페스트 속성 없음"이라는 오류가 발생했습니다.
이 솔루션은 저에게 효과적이었습니다 (팁을 위해 Thilina Ashen Gamage (위 참조) 덕분에).
발췌-외부 라이브러리를 사용하고 프로젝트 설정-아티팩트-추가 (+)-Jar-종속성이있는 모듈 에서 프로젝트를 빌드하는 경우 프로그램 버그로 인해 MANIFEST_MF 파일이있는 META-INF 폴더가 jar에 포함되지 않습니다. 이를 피하기 위해 EMPTY jar 파일을 작성 하십시오.
프로젝트 설정-아티팩트-추가 (+)-Jar-EMPTY JAR . META-INF 폴더가 resources 폴더에 추가됩니다 . 그런 다음 메인 클래스를 선택하십시오. 다음과 같은 jar 구조가 표시됩니다. META-INF 폴더 가 있는지 확인하십시오. 그런 다음 프로젝트를 빌드하고 아티팩트를 빌드 할 수 있습니다. 이 솔루션은 javaFX 응용 프로그램에서도 작동했습니다.
개미와 메이븐이 널리 사용됩니다. 저는 Ant를 선호합니다. 더 가벼워서 개발자가 더 잘 통제하고 있다고 생각합니다. 일부는 그것이 단점이라고 제안합니다 :-)