我创建了一个核心JavaMaven项目,它有一个主类。该类在Intellij中运行良好,但当我使用mvn clean install
创建jar时,它无法使用ClassNotFoundException
运行。我知道我的maven依赖项没有添加到类路径中,但是我如何添加它们呢?除非绝对需要,否则我不想创建一个带有依赖项的jar。
下面是我的pom.xml
的构建标记
更新:根据@devman的建议,我添加了maven-dependency-plugin。下面的pom是更新的。但是在运行mvn clean install
之后,lib
目录仍然没有在target
目录中创建。不知何故,我也没有看到这个插件在Intellij,但看到一些插件,没有在POM。下面是我更新的pom.xml的build
标签。
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.pkg.MyApp</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<includeScope>runtime</includeScope>
<excludeScope>provided</excludeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
下面是我在Intellij中看到的maven-> plugins
下的屏幕截图
2条答案
按热度按时间zvokhttg1#
您可以构建文件jar,用您的主类替换com.thanbv1510.MainApp中的值
qnakjoqk2#
不知何故,删除
pluginManagement
标记解决了这个问题。如果有人能解释为什么这个标签不能正常工作,我会接受这个答案。