programing

IDEA 10.5 명령줄이 너무 깁니다.

goodsources 2022. 9. 12. 11:53
반응형

IDEA 10.5 명령줄이 너무 깁니다.

Maven 프로젝트에서 테스트 케이스를 실행할 때(Windows에서):

TestApp.readParameter를 실행하는 동안 오류가 발생했습니다. 명령줄이 너무 깁니다.길이를 줄이기 위해 classpath 파일을 사용할 수 있습니다.프로젝트의 모든 실행 구성에 대해 클래스 경로 파일 모드를 사용하도록 설정하시겠습니까?가능하게 하다

set .iws

<property name="dynamic.classpath" value="true" />

어떻게 고칠 수 있을까요?

Intelij에서 "설정 편집"(실행 -> 설정 편집)으로 이동하여 "명령줄 단축" 행에 표시되는 구성 탭에서 드롭다운 메뉴에서 "classpath file"/"@arg Files(Java 9+)" 옵션을 선택합니다.날 위해 고쳤어.

의 설정Shorten command line:JAR manifest실행/디버깅 구성에서 문제를 해결합니다.

여기에 이미지 설명 입력

프로젝트 루트 폴더에서 .idea/workspace.xml 파일을 열고 섹션으로 이동합니다.

<component name="PropertiesComponent">

다음 항목을 추가합니다.

<property name="dynamic.classpath" value="true" />

Intelij 커뮤니티 2021.1 창에서 이 작업을 수행했습니까?정상적으로 작동하였습니다:)

  1. 구성 편집 메뉴에서 옵션 수정을 클릭합니다.

  1. 그런 다음 명령줄 단축을 선택합니다.

  1. JAR 매니페스트 옵션 선택, 적용 및 실행

여기에 이미지 설명 입력

dynamic.classpath 플래그의 기능(IntelliJ 프로젝트 설정)참조하십시오.

뭘 고치고 싶은지 모르겠어동적 클래스 경로를 피하려면 종속성을 수정하고 라이브러리, 프로젝트 파일 및 JDK를 경로가 짧은 디렉터리로 이동하십시오.

편집: 댓글에 링크된 버그는 타당하지만 테스트 실행 시 명령줄이 동적 클래스 경로를 사용하더라도 OS 제한을 초과합니다.이 문제는 IDEA에서 줄일 수 없는 명령줄 인수 또는 옵션이 많기 때문에 발생할 수 있습니다.IDEA는 긴 클래스 경로 문제만 회피할 수 있기 때문입니다.어쩔 수 없습니다. 명령행 길이가 제한 범위 내에 있도록 매개 변수를 앱에 전달하는 방법을 수정해야 합니다.

IDEA측에서는, 이러한 케이스의 대응을 개선합니다.동적 클래스 경로가 이미 사용되고 있고 긴 명령줄에 대한 다른 오류 메시지가 표시되면 이 대화 상자가 더 이상 표시되지 않습니다.이 건에 대해 새로운 호를 제출했습니다.

여기에 이미지 설명 입력

i Short 명령줄을 none = > JAR 메인페스트에서 설정하면 동작합니다.사용자가 만족할 수 있기를 바랍니다.

답변에 언급된 옵션은 현재 사용 중인 버전 2020.2에서는 사용할 수 없습니다.메시지에 표시된 "활성화" 링크를 클릭하면 이 문제가 해결되었습니다.

.Run/Debug Configurations.Shorten command line 방법classpath file를 클릭합니다.

인텔리 J에 관한 것입니다.아래 단계를 따라 테스트를 실행할 수 있습니다.

  1. 에디터의 상단 메뉴에 있는[ Edit Configurations ](구성 편집)으로 이동합니다.
  2. JUnits = > 아래에서 옵션 수정을 클릭합니다.
  3. java = > java [ Shorten Command ]= > [ JAR Manifest ]옵션을 선택합니다.

그게 날 해결했어.

나는 오랫동안 이 오류와 씨름했지만 다른 답변은 도움이 되지 않았다.

은 '다보다'에했다는 것입니다.pitest다음 중 하나:

useClasspathFile = true

, 그럼 이제...build.gradle파일에는 다음과 같은 엔트리가 있습니다.

 pitest {
    threads = 4

    //adds dependency to org.pitest:pitest-junit5-plugin and sets "testPlugin" to "junit5"
    junit5PluginVersion = '0.12'

    useClasspathFile = true    <------------------------------

    targetClasses = ["com.example.service.*"]

    if (project.name in ['no-need-to-mutate-module']) {
        failWhenNoMutations = false
    }
}

여기 저를 도와준 게시물에 대한 링크가 있습니다.

저도 이 문제가 있었습니다만, 많은 테스트 의존 관계가 클래스 패스에 있는 것을 확인한 후에 skipTests 플래그를 추가하는 것이 수정되었습니다.

mvnw.cmd -DskipTests=true package

커뮤니티 버전을 사용할 때 문제가 있었습니다.Maven 구성으로 프로젝트를 실행함으로써 문제를 해결했습니다.

spring-boot:run -Dspring.profiles.active=local

Intelij Maven 설정

언급URL : https://stackoverflow.com/questions/6381213/idea-10-5-command-line-is-too-long

반응형