Como Construir e Empacotar uma Aplicação Java?

Entenda como compilar e empacotar seu projeto Java em um arquivo JAR hospedado usando Maven ou Gradle.

📌 Por Que Preciso Construir Minha Aplicação Java?

Discloud não compila projetos Java automaticamente.

Você deve: ✔ Compilar seu código em arquivos .class. ✔ Empacotar tudo em um único arquivo .jar (incluindo dependências). ✔ Garantir que o arquivo META-INF/MANIFEST.MF defina corretamente a Main-Class.


🔧 Escolhendo uma Ferramenta de Construção

Ferramenta de Construção
Melhor Para
Arquivos Necessários

Maven

Grandes projetos, aplicativos com muitas dependências

pom.xml

Gradle

Projetos modernos com scripts de construção flexíveis

build.gradle ou build.gradle.kts


📦 Construindo Sua Aplicação Java

Apache Maven é uma ferramenta de automação de construção amplamente usada que gerencia construções de projetos, dependências e documentação usando um Modelo de Objeto de Projeto (POM).​

1

Adicione o Plugin do Compilador Maven**.**

Garanta que seu pom.xml inclua o Plugin do Compilador Maven para especificar a versão do Java para compilação. Isso evita problemas de compatibilidade ao executar o projeto.

pom.xml
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.9.9</version>
  <configuration>
    <source>17</source>
    <target>17</target>
  </configuration>
</plugin>
  • Defina <source> e <target> para a versão do Java necessária para seu projeto.

2

Especifique a Classe Principal**.**

Para tornar sua aplicação executável, você precisa especificar o ponto de entrada (método main). Isso é feito usando o Plugin Maven Shade, que também garante que todas as dependências sejam agrupadas dentro de um único arquivo JAR.

pom.xml
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <!-- NOTE: Replace this with the correct path to your project's main class -->
                <mainClass>com.project.example.Main</mainClass>
              </transformer>
            </transformers>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
  • Substitua com.project.example.Main pelo nome totalmente qualificado real da sua classe Main.

  • Garanta que a classe Main contenha um método public static void main(String[] args) válido.

3

Construa o Projeto**.**

Execute o seguinte comando para limpar construções antigas e gerar os novos arquivos JAR:

mvn clean package

Após executar mvn package, o Maven criará dois arquivos JAR diferentes dentro do diretório target/:

1

JAR Padrão (JAR Original do Projeto).

📌 Nome do arquivo: original-<artifactId>-<version>.jar 📌 Exemplo: original-com.maven.discordbot-0.0.1-SNAPSHOT.jar 📌 Conteúdo:

  • Apenas o código compilado do seu projeto.

  • NÃO inclui dependências.

2

JAR Gordo (JAR Sombreado com Dependências).

📌 Nome do arquivo: <artifactId>-<version>.jar 📌 Exemplo: com.maven.discordbot-0.0.1-SNAPSHOT.jar 📌 Conteúdo:

  • Seu código de aplicação compilado.

  • Todas as dependências incluídas (JDA, Apache Commons, etc.).

  • Arquivo de manifesto (MANIFEST.MF) com a entrada Main-Class.

Recomendação

Renomeie seu arquivo JAR para um nome simples como app.jar para evitar problemas com caracteres especiais.​

Last updated