1
2020beBetter 2021-03-09 12:41:49 +08:00
你的 my-app-1.0-SNAPSHOT.jar 包里面没有 log4j 的依赖 贴你的 pom
|
2
liduanjie OP pom 给你们看下。。
<?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>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <name>my-app</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.4.29.Final</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.11.0.GA</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> <!--<scope>system</scope> <systemPath>${project.basedir}/target/dependency/log4j-1.2.16.jar</systemPath>--> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> <!--add--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals><goal>copy-dependencies</goal></goals> </execution> </executions> </plugin> <!--add end--> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> <!--add start--> <!--add end--> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin> <plugin> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> </plugins> </pluginManagement> </build> </project> |
3
2020beBetter 2021-03-09 12:51:38 +08:00
target 下面 clean 过后就没有了阿。 你这个路径有问题
|
4
liduanjie OP @2020beBetter 大佬看下
|
5
liduanjie OP @2020beBetter 有的,我 build 出来的东西都在 target 目录。包括 depdency 都有。
|
6
liduanjie OP ├─classes
│ ├─com │ │ ├─HibernateUtil │ │ └─mycompany │ │ └─app │ └─hibernate │ └─mappings ├─dependency ├─generated-sources │ └─annotations ├─generated-test-sources │ └─test-annotations ├─maven-archiver ├─maven-status │ └─maven-compiler-plugin │ ├─compile │ │ └─default-compile │ └─testCompile │ └─default-testCompile ├─surefire-reports └─test-classes └─com └─mycompany └─app |
7
liduanjie OP @2020beBetter 不加 log4j 就没问题,可以打出 hello world 。但是加了 log4j 就会出现没有主类的问题。
|
8
lululau 2021-03-09 13:32:47 +08:00 via iPhone
哪里写的没有主类了。。。NoClassDefFound 十有八九是包冲突
|
10
coolcfan 2021-03-09 15:01:48 +08:00
因为你没有使用把所有依赖打包到你的 jar 里的 Maven 插件,而只是把依赖复制到了 target 里,所以打包出来的 jar 应该只包含你自己写的 class 。
所以要运行的时候,应该需要将依赖的 jar 加入到 classpath 里: java -cp my-app-version.jar:path/to/log4j.jar:path/to/other-dependency.jar com.mycompany.app.App |