Como configurar o método “Encurtar linha de comando” para todo o projeto no IntelliJ


110

Quando executo testes, recebo o erro "A linha de comando é muito longa". Funciona se eu definir o método "Encurtar linha de comando" na configuração Executar / Depurar para "manifesto JAR" para o método ou classe específica, mas como faço para defini-lo para todo o projeto ou há uma configuração global do IDE para ele?

Respostas:


68

Você pode definir uma maneira padrão de encurtar a linha de comando e usá-la como um modelo para outras configurações, alterando o modelo de configuração de execução / depuração JUnit padrão . Em seguida, todas as novas configurações de Executar / Depurar que você criar no projeto usarão a mesma opção.

Aqui está a postagem do blog relacionada sobre a opção de encurtador de linha de comando configurável.


3
Ele não funciona mais na nova versão porque a opção foi excluída. Como fazer agora?
— Mulgard

16
A configuração que funcionou para mim é selecionar a opção "arquivo classpath" na caixa de diálogo que surge ao clicar no link da mensagem de erro. Isso está na configuração "Encurtar linha de comando".
— havoc1

1
selecionar a opção "arquivo de caminho de classe" funciona e eu sugiro incluir essa opção na resposta para a versão mais recente do IDE.
— MrKumar

@MrKumar i get: 'CommandLineWrapper' não é adequado para iniciar aplicativos em Java 9+. Se a configuração de execução usa "arquivo classpath", altere-o para "@argfile". Caso contrário, entre em contato com o suporte.
— Tym Pollack

144

Dentro de sua pasta .idea, altere o arquivo workspace.xml

Adicionar

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

para

  <component name="PropertiesComponent">
.
.
.
  </component>

Exemplo

 <component name="PropertiesComponent">
    <property name="project.structure.last.edited" value="Project" />
    <property name="project.structure.proportion" value="0.0" />
    <property name="project.structure.side.proportion" value="0.0" />
    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
    <property name="dynamic.classpath" value="true" />
  </component>

Se você não encontrar um, fique à vontade para adicioná-lo você mesmo

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

Este método funciona no caso de sua versão do intellij não possuir o método GUI de configuração. Gostaria de salientar que pode ser o arquivo .idea / workspace.xml OU o arquivo <project_name> .iws. Se você não tiver uma pasta .idea, procure um arquivo .iws em seu projeto.
— Dennis Bartlett

salvou meu dia! os modelos padrão não funcionaram para mim.
— habitats

Funcionou para mim, obrigado
— Shylendra Madda

67

Intellij 2018.2.5

Executar => Editar Configurações => Escolher Nó no lado esquerdo => expandir Ambiente => Encurtar opções de linha de comando => escolher arquivo Classpath ou manifesto JAR

Captura de tela da configuração de execução / depuração mostrando as opções de linha de comando


8
Esta solução deve ser configurada como nova cada vez que você executa um único teste que não tenha executado antes
— 4ndro1d

2
Você pode definir isso no modelo para o tipo de configuração que está definindo e não precisará ser definido para cada novo teste / configuração. Veja a resposta aceita para detalhes.
— Dennis Bartlett

1
Sim! Isso funcionou perfeitamente para mim para os testes do Android! Obrigado!
— sud007

obrigado, você é salva-vidas!
— Serg Burlaka

2

Agradecimentos a Rajesh Goel em Android Studio:

Executar> Editar configurações ...

insira a descrição da imagem aqui

Selecione um teste (melhor selecionar uma classe de teste pai) e defina uma Shorten command line:opção para classpath file. Então OK (ou Aplicar, OK).

insira a descrição da imagem aqui


0

Se você usa a versão JDK 9+, deve selecionar

Executar > Editar configurações ... > Selecionar modelo JUnit .

Em seguida, selecione @argfile (Java 9+) como na imagem abaixo. Por favor tente. Boa sorte, amigos.

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.