博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven项目打包额外lib目录
阅读量:5888 次
发布时间:2019-06-19

本文共 4607 字,大约阅读时间需要 15 分钟。

maven项目依赖了几个额外的jar包一直都无法打进最终jar,不知道哪里出了问题.一直对这块不甚清楚,就大概梳理一下

默认打包方式:

  maven项目下,默认编译目录为

src/main/java和src/test/java

  和

src/main/resouces和src/test/resources

所以按照默认条件,其他目录的东西都不会被打进去,而且这些目录底下的一些非符合条件文件也不会被打包,java目录下只会打包.java文件,具体看target/classes目录下的文件即可

除非特别指定,否则,打包时将会把target/classes目录下的东西打包成jar

那么问题来了,怎么把想要加入打包的东西弄到目录target/classes下呢

这个是由resource决定的,当需要将一些特殊文件打包时,需要额外配置resource标签:

  比如经常碰到的在src/main/java中写的xml需要打包到jar,需要配置:

src/main/java
**/*.xml
**/*.yaml
true

  所以,如果要加入jar包同样需要加入resource

lib
BOOT-INF/lib/
**/*.jar

把lib目录下的所有jar都加入到resource中,就能看到target/class目录下有这些jar包啦

不过jar包有了,还是会报错:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project op-realname-test: Compilation failure

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:972)
at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

编译失败了,并且是因为缺少类引起的,而且是maven-compiler-plugin插件报错,检查发现,由于加入了新的资源,打包插件中也需要加入相应包路径:

maven-compiler-plugin
1.8
1.8
UTF-8
${project.basedir}/lib

done

转载于:https://www.cnblogs.com/garfieldcgf/p/10142754.html

你可能感兴趣的文章
e.keycode详解
查看>>
[Android疑难杂症]动态设置TextView的width不起作用
查看>>
xgboost原理及应用
查看>>
Spring--quartz中cronExpression配置说明
查看>>
照片批量压缩、缩放、加水印工具
查看>>
计蒜客:百度的科学计算器(简单)【python神解】
查看>>
阿里前端框架Alice是个不错的选择
查看>>
eclipse maven
查看>>
PreferencePage的小问题花了大把时间
查看>>
[Erlang 0104] 当Erlang遇到Solr
查看>>
域名泛解析设置
查看>>
Android 中的Json解析工具fastjson 、序列化、反序列化
查看>>
Android 设计模式一:EIT造型
查看>>
单机搭建Android开发环境(二)
查看>>
如何申请iOS开发者证书/发布app到手机
查看>>
String、StringBuffer、StringBuilder的区别
查看>>
android实现gif动态图的使用
查看>>
12.5. 集成 Mybatis
查看>>
如何去掉NavigationBar的backButton
查看>>
Android github 快速实现多人协作
查看>>