Construir projeto em um JAR automaticamente no Eclipse

171

Eu tenho um projeto Eclipse em que desejo manter meu projeto Java incorporado em um JAR automaticamente. Eu sei que tenho uma opção para exportar o projeto para um JAR; se eu clicar com o botão direito; mas o que realmente estou procurando é que, como o Eclipse, crie automaticamente os .classarquivos de um projeto e os coloque na pasta de destino; ele também deve criar um JAR automaticamente e copiar o JAR mais recente em algum local ou em um local específico.

Existe uma opção para configurar o Eclipse de tal maneira, para construir JARs automaticamente?

Apenas para deixar claro para os rapazes, paciente o suficiente para responder à minha pergunta; Não estou olhando para a ANT como solução; como eu já o uso, mas o que eu gostaria é algo que seja iniciado automaticamente, seja com um gatilho baseado no tempo ou com uma construção imediata com a mudança.

Priyank
fonte
1
Minha opinião pessoal: use m2e, a integração automática do Eclipse, para que ele produza uma jarra para você como parte da construção. Recentemente, tentei usar o Eclipse sem o Maven e não consigo acreditar no quão primitivo o construtor Java básico é.
Craig Ringer
1
Para 2018, use uma ferramenta de construção em vez da funcionalidade específica do IDE. O Maven compra a independência do IDE e o suporte à linha de comando.
Thorbjørn Ravn Andersen
@ Craig Ringer - existe um link sobre como fazer isso?
Nsandersen

Respostas:

27

Confira o Apache Ant

É possível usar o Ant para compilações automáticas com eclipse, eis como


fonte
Eu já estou usando o Apache ant para fazer as compilações e fazer o Jar. Mas o que eu realmente estava procurando era uma maneira de contornar a formiga apache e usar diretamente o eclipse.
Priyank
Desculpas, não passei pelo artigo no link anterior. Na verdade, fala sobre o que eu preciso. Obrigado.
Priyank
1
A resposta de Konrad corresponde mais ao que o OP estava procurando.
lycono
lycono, eu discordo - o OP queria que o jar fosse atualizado e a exportação de um arquivo jar não tenta resolver esse problema.
James Moore
1
Em julho de 2011, o artigo mencionado por @Peter não fala sobre como criar um arquivo jar.
James Moore
288

Você quer um .jardescarquivo. Eles não são iniciados automaticamente, mas ficam a 2 cliques.

  1. Clique com o botão direito do mouse no seu projeto
  2. Escolher Export > Java > JAR file
  3. Escolha os arquivos incluídos e nomeie JAR de saída e clique em Next
  4. Marque "Salvar a descrição deste JAR na área de trabalho" e escolha um nome para o novo .jardesc arquivo

Agora, tudo que você precisa fazer é clicar com o botão direito do mouse no seu .jardescarquivo e escolher, Create JARe ele será exportado no mesmo local.

Konrad
fonte
Triste que esta resposta não tenha recebido mais votos (ou melhor resposta) meses atrás. Bem, agora Konrad se foi.
Dan Rosenstark
25
No Eclipse Galileo, tive que substituir sua etapa 1 por Arquivo -> Exportar -> Java -> arquivo JAR.
Matt Huggins
9
Existe uma maneira de automatizar a etapa 'clique direito -> Criar JAR'?
Asaf
4
Existe uma maneira de automatizar a etapa 'clique direito -> Criar JAR' ou vinculá-la a uma combinação de teclas?
Pacerier
5
Eu uso "Exportar ... -> Java -> arquivo JAR executável" para criar exatamente isso.
precisa saber é o seguinte
70

Crie um arquivo Ant e diga ao Eclipse para construí-lo. Existem apenas duas etapas e cada uma é fácil com as instruções passo a passo abaixo.


Etapa 1 Crie um arquivo build.xml e inclua no package explorer:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

O Eclipse deve se parecer com a captura de tela abaixo. Observe o ícone Ant no build.xml. Build.xml no projeto Eclipse

Etapa 2 Clique com o botão direito do mouse no nó raiz do projeto. - Selecionar propriedades - Selecionar construtores - Selecionar novo - Selecionar construção de formiga - Na guia Principal, complete o caminho para o arquivo build.xml na pasta bin .

Configuração do construtor Ant Etapa de criação - guia Destinos

Verifique a saída

A janela de saída do Eclipse (denominada Console) deve mostrar o seguinte após uma construção:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

EDIT: Alguns comentários úteis de @yeoman e @betlista

@yeoman Eu acho que a inclusão correta seria /.class, não * .class, pois a maioria das pessoas usa pacotes e, portanto, a pesquisa recursiva por arquivos de classe faz mais sentido do que a inclusão simples

@ betetista Eu recomendaria não ter build.xml na pasta src

Thomas Bratt
fonte
2
Sim, você pode escolher os destinos para a etapa de compilação da seguinte maneira: Após uma Limpeza, Construção manual, Construção automática e Durante uma limpeza. Desenvolver Auto deve dar-lhe o que quiser :)
Thomas Bratt
8
Depois de experimentar os dois, essa solução parece muito melhor que a da Konrad. Ele exige que você descubra manualmente alguns caminhos no arquivo de compilação, mas permite a compilação automática (em vez de 2 cliques) e facilita a personalização (copie o jar após a compilação, por exemplo). Aqui está como criar um arquivo jar ao ter o arquivo de compilação na raiz e ter vários níveis aninhados de pacotes:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi
3
+1 Como essa não é a resposta aceita e nem a mais votada?
Juan Garcia
2
Muito obrigado. Eu recomendaria não ter build.xmlna pasta src, mas o resto está funcionando bem, incrível!
Betlista 02/02
1
Eu acho que a inclusão correta seria / .class, não * .class, pois a maioria das pessoas usa pacotes e, portanto, a pesquisa recursiva por arquivos de classe faz mais sentido do que a inclusão simples. Removerei meu +1 até então porque a resposta geralmente não funciona como está.
Yeoman
13

Isso é possível definindo um Construtor personalizado no eclipse (consulte o link na resposta de Peter). No entanto, a menos que seu projeto seja muito pequeno, ele poderá abrandar seu espaço de trabalho inaceitavelmente. A construção automática para arquivos de classe acontece de forma incremental, ou seja, apenas as classes afetadas por uma alteração são recompiladas, mas o arquivo JAR precisará ser reconstruído e copiado completamente, sempre que você salvar uma alteração.

Michael Borgwardt
fonte
1

Usando a resposta de Thomas Bratt acima, verifique se o build.xml está configurado corretamente:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

(Observe o asterisco duplo - ele instruirá o build a procurar arquivos .class em todos os subdiretórios.)

Hugo Leote
fonte
0

Criar um iniciador de construtor é um problema, pois 2 projetos não podem ter o mesmo nome de construção de ferramenta externa. Cada nome deve ser único. No momento, estou enfrentando esse problema para automatizar minha compilação e copiar o JAR para um local externo.

Estou usando o Zip Builder da IBM, mas isso é apenas uma ajuda, mas não estou realizando.

As pessoas podem tentar usar o plug-in IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

Anand Bansal
fonte