eclipse 打包maven项目的坑
一、问题:
公司开发了一个项目,需要作为后台服务运行,整个项目的构成是:【maven + spring + eclipse】
在使用打包的时候遇到许多问题:
(1)eclipse中maven工具的集成【配置仓库 】
(2) 打包的jre环境必须是jdk本身自带的,须在【performence--java】配置好java的运行环境【会报出多个环境异常】
(3)maven项目打包的命令可以使用【install/maven build】install会把安装包打到仓库里,build 会把安装包达到【target】
(4)【spring-ApplicationContext】如果是使用spring的手动加载,在读取配置文件的时候会报出【offending resource】
(5)如果maven的依赖除仓库本身外还依赖本地其它的jar包,需要西安【install】本地jar包到本地仓库再打包才能打入
二、解决:
(1)手动加载spring容器获取不到配置文件的情况,【classpath + *】
public static void init() {
if (ac == null) {
//ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-dao.xml");//修改为添加*号即可
ac = new ClassPathXmlApplicationContext("classpath*:applicationContext-dao.xml");
resource = new ClassPathResource("/properties/file.properties");
}
}
三、总结:
(1)为什么加【 * 】号可以识别到类路径的问题,网上的资料说加星号后可以识别其它jar包项目的配置文件,没有深入了解,大家有知道的麻烦评论下
classpath 和 classpaht*的区别 , classpath* 会查找根目录下所有的文件,至到找到匹配文件即可。儿classpath只会在/WEB-INF/classes中查找。
(2)在服务调试的时候,想到一个问题,在【cmd】启动一个jar包后,控制台当时可以看到程序的调试输出,再次打开控制台怎么查看这个程序的输出?
试过linux的jobs命令,但是,当时运行的控制台关闭,job也就关闭了,无法重新输出到本控制台
(3)还有一种spring容器加载配置文件错误的解决办法就是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>dwbi-excel</finalName>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
<!-- 以下就是解决配置文件无法加载的另一种解决办法,我没有试验,是同事试验的 -->
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${mainClass}</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.tooling</resource>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
eclipse 打包maven项目的坑的更多相关文章
- eclipse 修改maven项目的jdk版本
eclipse 修改maven项目的jdk版本 CreationTime--2018年6月8日10点29分 Author:Marydon 1.情景展示 jdk版本太低,如何修改 2.错误方式 第一 ...
- eclipse 导入包含子maven项目的maven项目时的正确方式(父子项目)
eclipse 导入包含子maven项目的maven项目时的正确方式(父子项目) NO1 导入时依次选择 import > Maven > Existing Maven Projects ...
- IDEA Maven项目的Mybatis逆向工程
IDEA Maven项目的Mybatis逆向工程 1.配置.pom 如果是在多模块开发下,该文件逆向工程要生成的那个模块下的pom文件. <build> <plugins> & ...
- .gitignore详解(附上eclipse的java项目的 .gitignore文件)
今天讲讲Git中非常重要的一个文件――.gitignore. 首先要强调一点,这个文件的完整文件名就是“.gitignore”,注意最前面有个“.”.这样没有扩展名的文件在Windows下不太好创建, ...
- dajie项目的坑
1.首先IDEA巨坑无比的地方是引入时,只要哪怕一个依赖下载不到,就会长期阻塞,删除.重新引入都没用!! 2.注释掉项目及其子项目中所有pom.xml中引用的spring仓库,否则即使maven配置阿 ...
- maven项目的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0 " 2 xmlns:xsi="http://www.w3.org ...
- 跨过Nginx上基于uWSGI部署Django项目的坑
先说说他们的关系,Nginx和uWSGI都是Web服务器,Nginx负责静态内容,uWSGI负责Python这样的动态内容,二者配合共同提供Web服务以实现提高效率和负载均衡等目的.uWSGI实现了多 ...
- gunicorn启动flask项目的坑
问题描述:项目用的是flask框架,在项目上线的时候,服务器上是使用gunicorn来启动项目的.但是上线之后,发现服务成功启动了,也有正确的返回值,但是没有生成日志,而用python来启动服务的时候 ...
- 用maven打包java项目的pom文件配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- #Alpha Scrum6
Alpha Scrum6 牛肉面不要牛肉不要面 Alpha项目冲刺(团队作业5) 各个成员在 Alpha 阶段认领的任务 林志松:督促和监督团队进度 陈彬:博客编写 吴沂章.林锃寒:代码功能完善 林志 ...
- git回滚线上代码
由于之前自己推代码的时候操作失误,push代码的时候没有push到线上的dev分支,而是push到了线上master分支(主要是因为没有在命令后写分支名,直接推到默认master分支上了),覆 ...
- Odoo字段类型
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9278620.html 一:基本字段类型 Binary:二进制类型,用于保存图片.视频.文件.附件等,在视 ...
- No.6 - 利用 CSS animation 制作一个炫酷的 Slider
*{ margin:; padding:; } div{ margin: auto; width: 800px; height: 681px; position: relative; overflow ...
- Java50道经典习题-程序33 杨辉三角
题目:打印出杨辉三角形(要求打印出10行如下图)分析: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 11 5 10 10 5 ...
- 百度Apollo安装说明
前言:最近在和百度Apollo合作,Apollo的人很nice,大家都在全力帮助我们解决问题.但Apollo系统有点难搞,安装起来很费劲,为了避免再次踩坑,留下笔记,流传后人,O(∩_∩)O. 1. ...
- Multiplication in PyTorch
1. Element-wise Multiplication * torch.Tensor.mul() torch.mul() 2. Matrix Multiplication torch.Tenso ...
- Linux下一种简单易行的cpu benchmark方法
用Linux自带的bc计算器计算pi值的一种benchmark手段 其实很简单,就是一行命令. time echo “scale=5000; 4*a(1)” | bc -l -q time是计时程 ...
- FLV封装格式分析
FLV官方文档:https://github.com/jiayayao/DataSheet/tree/master/media%20format/flv 一.FLV格式 FLV包括文件头(FLV he ...
- .gitignore设置不生效
.gitignore git中,如果想要让git忽略某些文件,或不想push到远程库,不让其受版本的控制.可以使用git提供的.gitignore文件进行配置.像这样: 一般情况下,在文件还未修改前, ...