Eu tenho um projeto que contém um único módulo e algumas dependências. Eu gostaria de criar um jar, em um diretório separado, que contenha o módulo compilado. Além disso, gostaria de ter as dependências presentes ao lado do meu módulo.
Não importa como eu giro o processo "build jar" do IntelliJ, a saída do meu módulo aparece vazia (além de um arquivo META-INF).
fonte
Ainda é um problema em 2017, espero que ajude alguém por aí! Encontrei 2 possibilidades para criar jar-s de trabalho no IntelliJ 2017.2
1. Criando artefato a partir do IntelliJ:
Você precisa alterar o diretório do manifesto:
substitua "java" por "recursos"
É assim que deve ser:
Em seguida, você escolhe as dependências que deseja empacotar em seu jar ou PERTO de seu arquivo jar
Para construir seu artefato, vá para construir artefatos e escolha "reconstruir". Ele criará uma pasta "out" com seu arquivo jar e suas dependências.
2. Usando o maven-assembly-plugin
Adicionar seção de construção ao arquivo pom
Este procedimento criará o arquivo jar na pasta "target"
fonte
no main manifest attribute
adotar as soluções acima. Ninguém mencionou mudar opath to manifest
. Thnx !!Recentemente, tive esse problema e acho que essas etapas são fáceis de seguir se faltarem detalhes de qualquer solução ou link anterior.
Como criar um
.jar
IntelliJ IDEA 14.1.5 usando:fonte
Para aqueles que se beneficiam de imagens como eu:
File -> Project Structure
fonte
Aqui estão 2 exemplos com o projeto maven, passo a passo:
Método 1: criar jar com maven e pom.xml
em pom.xml, adicione maven-jar-plugin.
captura de tela: 4. abra a caixa do projeto maven clicando no ícone de pesquisa e digite maven,
clique em limpar e clique em instalar
seu arquivo jar aparecerá dentro da pasta de destino
teste seu jar usando java -jar
Método 2: criar jar com maven sem alteração pom.xml
Muito importante!
O MANIFEST.MF precisa estar na sua pasta de recursos e o Main.Class precisa se referir a {package} - {class-name-that-contains-main-class}
fonte
Provavelmente é um pouco tarde, mas consegui resolvê-lo desta maneira -> abra com o winrar e exclua ECLIPSEF.RSA e ECLIPSEF.SF na pasta META-INF, além disso, coloque "Main-class: main_class_name" (sem ".class" ) em MANIFEST.MF. Certifique-se de pressionar "Enter" duas vezes após a última linha, caso contrário não funcionará.
fonte
Quando eu uso essas soluções este erro vem:
e solução é :
Você precisa alterar o diretório do manifesto:
alterar java para recursos
fonte
Eu estava tentando criar um jar a partir de um aplicativo Kotlin de vários módulos e estava recebendo o notório erro 'nenhum atributo de manifesto principal'. A criação do diretório de manifesto
src/main/resources
também não funcionou.Em vez disso, ele funciona ao criar-lo em
src
diretamente:src/META-INF/MANIFEST.MF
.fonte
Como as pessoas acima dizem, mas tenho que observar um ponto. Você precisa marcar a caixa de seleção:
fonte
Idéia 8.1.3
Jar está ok, já que há saída compilada no diretório 'output' (projeto / saída / produção //)
Eu acho que você precisa executar 'make' antes de construir o jar
para dependências, basta marcar "show library" e escolher o que deseja.
fonte
Com o Maven, você pode usar este plugin:
fonte
Você pode dar uma olhada no Maven ( http://maven.apache.org ). Você pode usá-lo como o principal processo de compilação do seu aplicativo ou apenas para executar determinadas tarefas através da caixa de diálogo Editar configurações. O processo de criação de um JAR de um módulo no Maven é bastante trivial, se você desejar incluir todas as dependências em um JAR auto-executável que também é trivial.
Se você nunca usou o Maven antes, deseja ler Better Builds With Maven .
fonte
Se você estiver usando bibliotecas de terceiros com seu projeto ou se tiver problemas ao criar o arquivo MANIFEST.MF corretamente, poderá haver conflitos ao executar arquivos JAR gerados usando
método mencionado acima.
Em vez disso, sugiro que você crie um JAR vazio e adicione todos os outros elementos à raiz de saída manualmente. Um artigo de blog maravilhoso para esse método pode ser encontrado aqui: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ Tentei as etapas mencionadas lá e tudo funcionou bem para mim!
fonte
Algumas das outras respostas são inúteis porque, assim que você reimportar o projeto IntelliJ IDEA do projeto maven, todas as alterações serão perdidas.
A construção do jar precisa ser acionada por uma configuração de execução / depuração, não pelas configurações do projeto.
O Jetbrains tem uma boa descrição de como você pode fazer isso aqui:
https://www.jetbrains.com/help/idea/maven.html
Role para a seção "Configurando gatilhos para objetivos do Maven".
(A única desvantagem de sua descrição é que as capturas de tela estão no esquema de cores preto e branco padrão, em vez do tema super impressionante do darcula. Ugh!)
Então, basicamente, o que você faz é abrir o painel "Projetos Maven", encontrar o projeto de seu interesse (no seu caso, o projeto que constrói seu jar); por baixo, você encontra o objetivo final que deseja executar , (geralmente a meta "pacote" cria jars), você abre o menu de contexto (clique com o botão direito do mouse em uma máquina Windows) e haverá a opção "Executar antes da execução / depuração ..." selecione e o levará pela mão de lá. Muito fácil.
fonte
Caso esteja tentando criar um jar com o kotlin, você precisa criar uma
src/main/java
pasta e usá-la como um local para a pasta META-INF.fonte
Aqui está a resposta oficial da Ajuda do IntelliJ IDEA 2018.3 . Eu tentei e funcionou.
fonte
Meu problema era o seguinte: usei o Intellij IDEA (tentei versões diferentes) + Gradle. Quando compilei o projeto e construí o jar do artifacf, conforme indicado nas respostas acima, recebi um erro - "nenhum manifesto principal atribui ..."
Esta solução funcionou para mim (agradecimentos especiais a Thilina Ashen Gamage (veja acima) pela dica):
Trecho - se você usar bibliotecas externas e criar um projeto por meio de Configurações do projeto - Artefatos - Adicionar (+) - Jar - De módulos com dependências , provavelmente por causa de um erro de programa, a pasta META-INF com o arquivo MANIFEST_MF não inclui o jar. Para evitá-lo, crie VAZIO arquivo jar .
Configurações do projeto - Artefatos - Adicionar (+) - Jar - JAR VAZIO . A pasta META-INF será adicionada à pasta de recursos . Então selecione sua classe principal. Você verá a seguinte estrutura do jar: Observe a presença de uma pasta META-INF. Em seguida, você pode construir seu projeto e artefatos. Essa solução também funcionou para aplicativos javaFX.
fonte
Se você estiver trabalhando no projeto spring / mvn, poderá usar este comando:
O arquivo jar será salvo no diretório de destino.
fonte
Ant e Maven são amplamente utilizados. Prefiro Ant, sinto que é mais leve e você, o desenvolvedor, está mais no controle. Alguns sugerem que essa é a sua desvantagem :-)
fonte