IT이야기

IntelliJ에서 항아리를 제대로 만드는 방법?

cyworld 2022. 4. 27. 21:39
반응형

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 파일 위치

나는 최근에 이런 문제를 겪었고, 만약 어떤 사전 해결책이나 링크가 세부사항을 빠뜨린다면 이 단계들이 따르기가 쉽다고 생각한다.

생성 방법.jarIntelliJ Idea 14.1.5 사:

  1. 파일 > Save All.
  2. 드라이버 또는 클래스를 주 메소드로 실행하십시오.
  3. 파일 > 프로젝트 구조.
  4. 탭 "Artifacts"를 선택하십시오.
  5. 창 위쪽에 있는 녹색 더하기 버튼을 클릭하십시오.
  6. 추가 드롭다운 메뉴에서 JAR을 선택하십시오.종속성이 있는 모듈에서 선택
  7. 기본 클래스를 선택하십시오.
  8. 라디오 버튼은 "대상 JAR으로 확장"을 선택해야 한다. OK를 누르십시오.
  9. "제조 시 빌드" 확인란을 선택하십시오.
  10. apply를 누르고 OK를 누르십시오.
  11. 메인 메뉴에서 빌드 드롭다운을 선택하십시오.
  12. 빌드 아티팩트 옵션을 선택하십시오.

나처럼 이미지로부터 이익을 얻는 사람들을 위해:

File -> Project Structure

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

여기에 이미지 설명을 입력하십시오.

다음은 단계별로 면봉 프로젝트와 관련된 2가지 예:

방법 1: maven 및 pom.xml로 항아리 제작

  1. 파일, 새 파일, 프로젝트, maven
  2. 패키지 생성, 패키지 내부에 자바 프로그램 생성
  3. 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을 입력하십시오.

  1. [새로 만들기]를 누른 후 [설치]를 누르십시오.

  2. jar 파일이 대상 폴더 내부에 표시됨

  3. Java -jar를 사용하여 항아리를 테스트하십시오.

여기에 이미지 설명을 입력하십시오.

방법 2: pom.xml 변경 없이 maven으로 항아리 제작

  1. 파일, 새 파일, 프로젝트, maven
  2. 패키지 생성, 해당 패키지 내부에 자바 프로그램 생성(위 내용과 동일)
  3. File -> -> -> -> 클릭 -> -> ->

아주 중요해!

매니페스트.MF는 리소스 폴더와 주 폴더에 있어야 한다.클래스는 {package}-{class-name-the-contents-main-class}을(를) 참조해야 함

여기에 이미지 설명을 입력하십시오. 여기에 이미지 설명을 입력하십시오.

  1. 그런 다음 메뉴에서 빌드, 아티팩트, 빌드

여기에 이미지 설명을 입력하십시오.

  1. 아웃폴더에서 항아리를 찾다.

여기에 이미지 설명을 입력하십시오.

  1. 실행:)

여기에 이미지 설명을 입력하십시오.

솔루션을 사용할 때 다음 오류가 발생함:

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 파일을 빌드하려면;

  1. 메인 메뉴에서 빌드 | 빌드 아티팩트(Build | Build Architect)를 선택하십시오.

  2. 드롭다운 목록에서 JAR 유형의 원하는 아티팩트를 선택하십시오.목록에는 현재 프로젝트에 대해 구성된 모든 아티팩트가 표시된다. 구성된 아티팩트를 모두 빌드하려면 모든 아티팩트 빌드 옵션을 선택하십시오.

내 문제는 다음과 같았다.나는 Intellij IDEA(다른 버전을 시도함) + Gradle을 사용했다.위의 응답에 나타난 바와 같이, 프로젝트를 편집하고 인공호흡 항아리를 만들었을 때, 나는 오류를 받았다. "주요 성명서 작성은 없다..."

이 해결책은 나에게 효과가 있었다(Thilina Ashen Gamage (위 참조) 팁에 대해 Thilina Asen Gamage에게 특별히 감사함).

발췌 - 외부 라이브러리를 사용하고 프로젝트 설정 - 아티팩트 - 추가(+) - Jar - 종속성이 있는 모듈에서 프로젝트를 빌드하는 경우 프로그램 버그로 인해 META-INF 폴더가 병에 포함되지 않은 META-INF 폴더 때문일 수 있다.를 방지하려면 빈 jar 파일을 생성하십시오.

프로젝트 설정 - 아티팩트 - 추가(+) - JAR - 빈 JAR. META-INF 폴더가 리소스 폴더에 추가됨그런 다음 메인 클래스를 선택하십시오.다음과 같은 항아리 구조를 볼 수 있다.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 폴더의 위치로 사용하십시오.

"리소스 파일을 찾을 수 없음" 오류가 발생하여 이 답변을 읽는 경우 다음을 수행하십시오.

  1. File -> Project Structure -> Artaces -> New, 타입은 Other.
  2. 좋은 이름을 지어주고, 그리고 그 속에서Output Layout누르다Create Archive새로운 항아리를 만들고, 다시 한 번 좋은 이름을 붙인다;;)
  3. 방금 추가한 병을 클릭하고 컴파일된 모듈 출력을 병에 추가하십시오.
  4. 병을 다시 클릭하고 아래쪽 창에서 프로젝트 경로를 선택하고 추가Manifest File그리고 나서 바로잡다.Main Class그리고Class Path.
  5. 클릭Add Library Files필요한 라이브러리를 선택하고(+A를 사용하여 모두 선택 가능)
  6. 빌드 -> 아티팩트 빌드 -> 청소 & 빌드하여 오류가 사라졌는지 확인하십시오.

그래들(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

반응형