IntelliJ에서 항아리를 제대로 만드는 방법?
나는 단일 모듈, 그리고 몇몇 종속성을 포함하는 프로젝트를 가지고 있다.컴파일된 모듈이 들어 있는 항아리를 별도의 디렉토리에 만들고 싶다.또한 내 모듈 옆에 있는 종속성을 가지고 싶다.
IntelliJ의 "build jar" 프로세스를 어떻게 비틀어도 META-INF 파일 외에 내 모듈의 출력은 비어 있는 것으로 나타난다.
IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/으로 항아리를 만드는 방법
File -> -> -> -> 클릭 -> -> ->
위의 내용은 "골격"을 항아리가 저장될 위치로 설정한다.실제로 구축 및 저장하려면 다음을 수행하십시오.
대상 Jar에 추출
네 알겠습니다
빌드 | 빌드 아티팩트 | 빌드 | 빌드
.jar 파일 추출 시도
ProjectName | | | 아티팩트 | ProjectName_jar | ProjectName.독을 타다
이것은 2017년에도 여전히 이슈가 되고 있어, 누군가에게 도움이 되었으면 좋겠어!IntelliJ 2017.2에서 작업 항아리를 만들 수 있는 두 가지 가능성을 발견했다.
1. IntelliJ에서 아티팩트 생성:
- 프로젝트 구조로 이동:
- 새 아티팩트 생성:
- 기본 클래스를 선택하고 매니페스트 폴더를 변경하십시오.
매니페스트 디렉터리를 변경해야 하는 경우:
<project folder>\src\main\java
"java"를 "resources"로 대체하다.
<project folder>\src\main\resources
다음과 같이 보여야 한다.
그런 다음 항아리 또는 항아리 파일 근처에 포장할 종속성을 선택하십시오.
아티팩트를 빌드하려면 아티팩트를 빌드하고 "빌드"를 선택하십시오.jar 파일과 종속성이 있는 "out" 폴더를 생성한다.
2. maven-assembly-plugin 사용
폼 파일에 빌드 섹션 추가
<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>
- 새 실행/디버그 구성 만들기:
- 응용 프로그램 선택:
- 서식에 기입하다
- 마지막으로 실행할 빌드 후 "assembly:single" maven 목표를 추가하십시오.
- 저장한 다음 실행
이 절차는 "target" 폴더 아래에 jar 파일을 생성한다.
나는 최근에 이런 문제를 겪었고, 만약 어떤 사전 해결책이나 링크가 세부사항을 빠뜨린다면 이 단계들이 따르기가 쉽다고 생각한다.
생성 방법.jar
IntelliJ Idea 14.1.5 사:
- 파일 > Save All.
- 드라이버 또는 클래스를 주 메소드로 실행하십시오.
- 파일 > 프로젝트 구조.
- 탭 "Artifacts"를 선택하십시오.
- 창 위쪽에 있는 녹색 더하기 버튼을 클릭하십시오.
- 추가 드롭다운 메뉴에서 JAR을 선택하십시오.종속성이 있는 모듈에서 선택
- 기본 클래스를 선택하십시오.
- 라디오 버튼은 "대상 JAR으로 확장"을 선택해야 한다. OK를 누르십시오.
- "제조 시 빌드" 확인란을 선택하십시오.
- apply를 누르고 OK를 누르십시오.
- 메인 메뉴에서 빌드 드롭다운을 선택하십시오.
- 빌드 아티팩트 옵션을 선택하십시오.
나처럼 이미지로부터 이익을 얻는 사람들을 위해:
File -> Project Structure
다음은 단계별로 면봉 프로젝트와 관련된 2가지 예:
방법 1: maven 및 pom.xml로 항아리 제작
- 파일, 새 파일, 프로젝트, maven
- 패키지 생성, 패키지 내부에 자바 프로그램 생성
pom.xml에서 maven-jar-line을 추가한다.
<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을 입력하십시오.
[새로 만들기]를 누른 후 [설치]를 누르십시오.
jar 파일이 대상 폴더 내부에 표시됨
Java -jar를 사용하여 항아리를 테스트하십시오.
방법 2: pom.xml 변경 없이 maven으로 항아리 제작
- 파일, 새 파일, 프로젝트, maven
- 패키지 생성, 해당 패키지 내부에 자바 프로그램 생성(위 내용과 동일)
- File -> -> -> -> 클릭 -> -> ->
아주 중요해!
매니페스트.MF는 리소스 폴더와 주 폴더에 있어야 한다.클래스는 {package}-{class-name-the-contents-main-class}을(를) 참조해야 함
- 그런 다음 메뉴에서 빌드, 아티팩트, 빌드
- 아웃폴더에서 항아리를 찾다.
- 실행:)
이 솔루션을 사용할 때 다음 오류가 발생함:
java -jar xxxxx.jar
xxxxx.jar에 주 매니페스트 특성이 없음
해결책은 다음과 같다.
매니페스트 디렉터리를 변경해야 하는 경우:
<project folder>\src\main\java
자바를 자원으로 변경하다
<project folder>\src\main\resources
아마 조금 늦었을지 모르지만, 나는 겨우 이런 식으로 해결했다. -> 윈라로 문을 열고 ECLIXF를 삭제했다.RSA와 ECLICEF.META-INF 폴더의 SF, 나아가 매니페스트에 "Main-class: main_class_name"("class" 제외)을 넣는다.MF. 마지막 줄 뒤에 "Enter"를 두 번 눌렀는지 확인해, 그렇지 않으면 작동이 안 돼.
나는 다중 모듈 코틀린 앱에서 항아리를 만들려고 하다가 악명 높은 '주요 매니페스트 속성 없음' 오류를 얻고 있었다.매니페스트 디렉터리를 만드는 중src/main/resources
역시 효과가 없었다.
대신 다음 위치에서 해당 파일을 만들 때src
직접: .
위의 사람들이 말하듯이, 그러나 나는 한 가지 점을 주목해야 한다.확인란을 선택해야 함:
프로젝트 빌드에 포함
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>
아이디어 8.1.3
'출력' 디렉토리에 컴파일된 출력이 있으므로 Jar는 정상임(프로젝트/out/production//)
항아리를 만들기 전에 '만들기'를 실행해야 할 것 같다.
종속성을 확인하려면 "라이브러리 표시"를 확인하고 원하는 항목을 선택하십시오.
다음은 IntelliJ IDEA 2018.3의 공식 답변이다. 도와줘 노력했는데 효과가 있었어
모듈에서 JAR 파일을 빌드하려면;
메인 메뉴에서 빌드 | 빌드 아티팩트(Build | Build Architect)를 선택하십시오.
드롭다운 목록에서 JAR 유형의 원하는 아티팩트를 선택하십시오.목록에는 현재 프로젝트에 대해 구성된 모든 아티팩트가 표시된다. 구성된 아티팩트를 모두 빌드하려면 모든 아티팩트 빌드 옵션을 선택하십시오.
내 문제는 다음과 같았다.나는 Intellij IDEA(다른 버전을 시도함) + Gradle을 사용했다.위의 응답에 나타난 바와 같이, 프로젝트를 편집하고 인공호흡 항아리를 만들었을 때, 나는 오류를 받았다. "주요 성명서 작성은 없다..."
이 해결책은 나에게 효과가 있었다(Thilina Ashen Gamage (위 참조) 팁에 대해 Thilina Asen Gamage에게 특별히 감사함).
발췌 - 외부 라이브러리를 사용하고 프로젝트 설정 - 아티팩트 - 추가(+) - Jar - 종속성이 있는 모듈에서 프로젝트를 빌드하는 경우 프로그램 버그로 인해 META-INF 폴더가 병에 포함되지 않은 META-INF 폴더 때문일 수 있다.이를 방지하려면 빈 jar 파일을 생성하십시오.
프로젝트 설정 - 아티팩트 - 추가(+) - JAR - 빈 JAR. META-INF 폴더가 리소스 폴더에 추가됨그런 다음 메인 클래스를 선택하십시오.다음과 같은 항아리 구조를 볼 수 있다. META-INF 폴더 존재 유무를 적어두면 프로젝트를 빌드하고 아티팩트를 빌드할 수 있다.이 솔루션은 자바FX 애플리케이션에도 적용되었다.
사용.
mvn clean package spring-boot:repackage
IntelliJ 터미널에 명령어를 입력하십시오.실행 가능한 항아리가 있는 대상 파일을 생성한다.
당신은 메이븐(http://maven.apache.org)을 보고 싶을 것이다.응용 프로그램의 기본 빌드 프로세스로 사용하거나 구성 편집 대화상자를 통해 특정 작업을 수행하는 데만 사용할 수 있다.메이븐 내에서 모듈의 JAR을 생성하는 과정은 상당히 사소한 것으로, 만약 당신이 그것이 사소한 자기 실행 JAR에도 모든 의존성을 포함시키기를 원한다면 상당히 사소한 것이다.
만약 당신이 전에 메이븐을 사용해 본 적이 없다면, 당신은 메이븐과 함께 더 나은 빌드를 읽고 싶을 것이다.
프로젝트와 함께 타사 라이브러리를 사용하거나 매니페스트를 만드는 데 문제가 있는 경우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/ 나는 그곳에서 언급된 단계들을 시도해 봤고 모든 것이 잘 작동했다!
메이븐 프로젝트에서 인텔리제이 아이디어 프로젝트를 재수입하는 순간 모든 변화가 없어지기 때문에 다른 답변 중 일부는 무용지물이다.
항아리 제작은 프로젝트 설정이 아닌 실행/디버그 구성에 의해 촉발되어야 한다.
제트브레인은 당신이 어떻게 이 일을 해낼 수 있는지에 대한 멋진 설명을 가지고 있다.
https://www.jetbrains.com/help/idea/maven.html
아래로 스크롤하여 "Maven 목표에 대한 트리거 구성" 섹션으로 이동하십시오.
(이러한 설명의 유일한 단점은 그들의 스크린샷이 초호화 다굴라 테마 대신 기본 흑백 색 구성으로 되어 있다는 것이다.으악!)
그래서 기본적으로 여러분이 하는 일은 "메이븐 프로젝트" 패널을 열면 관심 프로젝트를 찾을 수 있고, 그 아래에서 (당신의 경우, 항아리를 만드는 프로젝트) 실행하고자 하는 메이븐 목표를 찾을 수 있고, (대개 "패키지" 목표가 항아리를 만들면) 컨텍스트 메뉴를 열 수 있고, (Windows 기계를 마우스 오른쪽 버튼으로 클릭) 그러면 거기다"실행/디버그 전 실행...당신이 선택할 수 있는 옵션으로 거기서부터 당신의 손을 잡을 것이다.정말 쉽다.
만약 당신이 코틀린으로 항아리를 만들려고 한다면 당신은 당신이 코틀린으로 항아리를 만들 필요가 있다.src/main/java
이 폴더를 META-INF 폴더의 위치로 사용하십시오.
"리소스 파일을 찾을 수 없음" 오류가 발생하여 이 답변을 읽는 경우 다음을 수행하십시오.
- File -> Project Structure -> Artaces -> New, 타입은 Other.
- 좋은 이름을 지어주고, 그리고 그 속에서
Output Layout
누르다Create Archive
새로운 항아리를 만들고, 다시 한 번 좋은 이름을 붙인다;;) - 방금 추가한 병을 클릭하고 컴파일된 모듈 출력을 병에 추가하십시오.
- 병을 다시 클릭하고 아래쪽 창에서 프로젝트 경로를 선택하고 추가
Manifest File
그리고 나서 바로잡다.Main Class
그리고Class Path
. - 클릭
Add Library Files
필요한 라이브러리를 선택하고(+A를 사용하여 모두 선택 가능) - 빌드 -> 아티팩트 빌드 -> 청소 & 빌드하여 오류가 사라졌는지 확인하십시오.
그래들(Gradle)을 사용하여 프로젝트를 빌드하면 병(gar)이 빌드 파일 내에 있게 된다.Gradle로 .jar 파일을 작성하는 방법에 대한 Stack Overflow 링크 입니다.
Gradle이 포함된 Java 프로젝트 및 Intellij IDEA에서 jar 파일을 빌드하는 방법
주어진 해답을 대부분 시도해 보았지만, 나의 경우 (항아리 파일이 들어 있는) "out" 폴더는 생성되지 않고 있었다.그래서 이것이 그 일을 해냈다.
빌드 -> 빌드 아티팩트 -> (클래스 이름이 표시됨) -> 빌드
이제, "out" 폴더가 만들어졌고 그 안에 jar 파일이 있었다.
스프링/mvn 프로젝트에서 작업 중인 경우 다음 명령을 사용할 수 있다.
mvn package -DskipTests
항아리 파일은 목표물에 저장될 것이다.
개미와 메이븐은 널리 사용된다.난 앤트가 더 좋아, 난 그게 더 가볍고 개발자가 더 잘 통제할 수 있다고 생각해.어떤 사람들은 그것이 그것의 단점이라고 제안할 것이다:-)
참조URL: https://stackoverflow.com/questions/1082580/how-to-build-jars-from-intellij-properly
'IT이야기' 카테고리의 다른 글
Vue.js - Vuex에 저장된 Javascript 모델이 개체로 변환됨 (0) | 2022.04.27 |
---|---|
C에서 stdout에게 쓴다는 것은 무슨 뜻인가? (0) | 2022.04.27 |
C에서 메인() 없이 프로그램 컴파일 및 실행 (0) | 2022.04.26 |
Vuetify 사용 방법Google Places API를 사용한 JS Advanced 슬롯 예제 (0) | 2022.04.26 |
Vuex 반환 부울? (0) | 2022.04.26 |