Bom dia a todos…
Criei um projeto para estudo no netbeans utilizando maven
a) Novo Projeto
b) Maven
c) Aplicação Java
d) Uma Classe Teste
fui nas propriedades do projeto e coloquei a minha classe Teste para executar
e) Mandei Limpar e Construir
f) Foi gerado uma pasta target onde esta o meu .jar
g) mandei executar o meu jar: “java -jar projeto.jar”
erro:
nenhum atributo do manifesto principal projeto.jar
o que fazer?
FearX
Fevereiro 13, 2020, 12:35pm
#2
A primeira coisa a se fazer é entender o erro.
“Nenhum atributo do manifesto principal projeto.jar” significa que você possivelmente esqueceu de criar o arquivo MANIFEST ou, se criou, esqueceu de indicar o ponto de entrada do seu jar (sua classe main).
Espero que com essa dica você consiga solucionar seu problema.
cara não existe esse arquivo manifest dentro no projeto java criado pelo maven
Com esse plugin eu resolvi o problema…
Ou seja foi executada a minha classe
porem apareceu outro problema
o Jar do banco de dados mesmo eu criando uma pasta lib não é carregado
plugin
org.apache.maven.plugins
maven-jar-plugin
3.0.2
br.com.jgs.maven0001.Teste
quando eu executo a aplicação ele me da o erro:
java.lang.ClassNotFoundExeption
quando eu não criou a aplicação com o maven eu baixo os outros jars na pasta lib e resolve
e neste caso não resolveu
o que fazer?
com.microsoft.sqlserver.jdbc.sqlserverdriver
cara, eu sei que é porque não esta carregando o jar do banco de dados…
o meu problema é que eu sempre criar projeto sem o maven.
e sem o maven basta eu colocar na pasta lib o jar do banco de dados e ta tudo resolvido.
o problema é que o projeto sendo criardo pelo maven mesmo eu criando uma pasta lib e banxando la o jar do banco de dados o problema persist
entendeu?
em fim, o meu problema é simples, estou estudando o maven e preciso criar um simples projeto que tenha uma classe teste.java e que ela acessa o banco de dados, e que eu consiga executar ela: java -jar meuprojeto.jar
so isso
FearX
Fevereiro 13, 2020, 1:22pm
#9
O Maven é um gerenciador de dependências, imagino que o “baixando” seja no pom.xml, e não baixar o arquivo JAR e jogando na pasta lib.
cara já esta no pom
esse é o problema
Eu não vi o pom, então não posso afirmar.
Porém, se está usando eclipse, pode ser que não esteja inserindo no jar criado.
Verifique isso, clicando com o botão direito do mouse sobre o projeto > properties > deployment assembly e certifique-se de que a opção maven libraries está nos elementos a serem adicionados ao jar
Estou trabalhando com o netbeans
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.jgs</groupId>
<artifactId>Maven0001</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/sqljdbc4 -->
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<mainClass>br.com.jgs.maven0001.Teste</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
Ou você seleciona o trecho do xml e clicar no botão </> acima do editor ou não veremos nada do mesmo.
Demorei um pouco mas consegui descobrir como atender minhas necessidades:
Tres poms diferentes um para cada necessidade…
1o. Pom utilizado para criar um jar que executa uma determinada classe e
gera a pasta lib com as bibliotecas do projeto:
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
> <modelVersion>4.0.0</modelVersion>
> <groupId>br.com.jgs</groupId>
> <artifactId>MavenExecutavelComLib</artifactId>
> <version>1.0</version>
> <packaging>jar</packaging>
> <properties>
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> <maven.compiler.source>1.8</maven.compiler.source>
> <maven.compiler.target>1.8</maven.compiler.target>
> </properties>
> <dependencies>
> <dependency>
> <groupId>com.microsoft.sqlserver</groupId>
> <artifactId>sqljdbc4</artifactId>
> <version>4.0</version>
> </dependency>
> </dependencies>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-jar-plugin</artifactId>
> <version>3.2.0</version>
> <configuration>
> <archive>
> <manifest>
> <addClasspath>true</addClasspath>
> <classpathPrefix>lib/</classpathPrefix>
> <mainClass>br.com.jgs.maven0001jar.Teste</mainClass>
> </manifest>
> </archive>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-dependency-plugin</artifactId>
> <executions>
> <execution>
> <phase>install</phase>
> <goals>
> <goal>copy-dependencies</goal>
> </goals>
> <configuration>
> <outputDirectory>${project.build.directory}/lib</outputDirectory>
> <!-- optional -->
> <!-- exclude copying test and provided dependencies -->
> <includeScope>runtime</includeScope>
> <excludeScope>provided</excludeScope>
> <!-- optional -->
> </configuration>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </build>
> <name>MavenExecutavelComLib</name>
> </project>
2o. Pom utilizado para criar um jar que executa uma determinada classe e
não gera a pasta lib com as bibliotecas do projeto devendo você criar manualmente
a pasta lib com as bibliotecas necessárias quando você for instalar:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.jgs</groupId>
<artifactId>MavenExecutavelSemLib</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>br.com.jgs.maven0001jar.Teste</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<name>MavenExecutavelSemLib</name>
</project>
3o. Pom utilizado para criar um jar que executa uma determinada classe e
junto todas as libs em um jar Único. (Com todas as libs no mesmo jar)
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
> <modelVersion>4.0.0</modelVersion>
> <groupId>br.com.jgs</groupId>
> <artifactId>MavenExecutavelEmUnicoJar</artifactId>
> <version>1.0</version>
> <packaging>jar</packaging>
> <properties>
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> <maven.compiler.source>1.8</maven.compiler.source>
> <maven.compiler.target>1.8</maven.compiler.target>
> </properties>
> <dependencies>
> <dependency>
> <groupId>com.microsoft.sqlserver</groupId>
> <artifactId>sqljdbc4</artifactId>
> <version>4.0</version>
> </dependency>
> </dependencies>
> <build>
> <plugins>
> <plugin>
> <artifactId>maven-assembly-plugin</artifactId>
> <executions>
> <execution>
> <phase>package</phase>
> <goals>
> <goal>single</goal>
> </goals>
> <configuration>
> <archive>
> <manifest>
> <mainClass>br.com.jgs.maven0001jar.Teste</mainClass>
> </manifest>
> </archive>
> <descriptorRefs>
> <descriptorRef>jar-with-dependencies</descriptorRef>
> </descriptorRefs>
> </configuration>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </build>
> <name>MavenExecutavelEmUnicoJar</name>
> </project>