Eclipse开发,编译,打包常见问题总结------持续更新

在使用Eclipse开发,编译,打包常见问题如下:

1、  保证本地开发的客户端与服务端使用的jdk版本一致

2、  保证本地开发的客户端与服务端使用的依赖jar包版本一致(比如本地thrift 客户端使用的libthrift版本和服务端使用的libthrift使用的版本)。不要版本不兼容

3、  保证本地依赖的jar包版本之间不冲突(可以通过pom.xml的dependency hierarchy窗口查看依赖冲突;然后使用maven的打包工具maven-jar-plugin解决版本冲突)(引用jar包实际上是使用jar包内的class文件,如果多个jar包里都有com.test.study这个类,但是每个类的实现不同。就会导致混乱不知道引用哪一个。找不到指定类。)

4、  用Eclipse打可执行jar包时:launch configuration里经常会找不到我们要打包的工程。那是因为这个工程我们从来没有运行过。必须要编译运行通过一次,我们才可以在launch configuration里找到我们要打包的工程。如果工程中我们还依赖了第三方jar包,下面三个对应选型分别对第三方jar包做了处理。1)将依赖jar包的class文件提取出来和工程源码一起编译 ;2)将依赖jar包和工程一起打包(此时生成的manifest清单中classpath指定了依赖jar的查找路径就在当前可执行jar包的所在目录下 ) 3)将依赖jar包 单独打到一个子文件夹下比如mylib。这个文件夹和我们的可执行jar包在一个目录(此时生成的manifest清单中,classpath指定了依赖jar的查找路径就在当前可执行jar包的所在目录下的子文件夹里eg:mylib )。

       用maven 打jar包时:可以分别选择打包插件比如maven-jar-plugin(manifest中配置mainclass和classpath),maven-assembly-plugin或者maven-shade-plugin(将依赖包和工程打到一个包里)

!!!一定要弄清楚程序编译和运行时的classpath

 

 

5、 在编译和运行时,如果依赖某个资源文件resources。如果不是指定全路径来打开这个文件,则需要保证这个文件在编译和运行的(classpath)路径上。普通Java项目默认的classpath是src文件夹下的内容;如果想要某个文件夹下(eg:test_resources)的资源被自动程序自动搜索到,则需要将test_resources添加到Java build path中(右键properties>java build path>sources);maven 项目,默认的classpath是src/main/java 和 src/main/resourse目录。如果想把资源拷出来,则用maven-resource-plugins插件编译

 

posted on 2019-05-07 10:49  happy刘艺  阅读(1204)  评论(0编辑  收藏  举报

导航