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.