以前觉了maven依赖设置很简单,就是将手动导入jar包转化为自动下载导入
但发现的一个问题,
在使用maven插件tomcat打包上传工具时
tomcat-maven-plugin
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>${project.build.sourceEncoding}</encoding> <compilerArgument>-parameters</compilerArgument> </configuration> </plugin> <!-- tomcat远程部署 --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <url>http://ip:端口/manager/text</url> <path>/项目名</path> <username>xxxx</username> <password>xxx</password> <server>tomcat</server> <update>true</update> </configuration> </plugin> </plugins> </pluginManagement> </build>
老是出现可以上传war包到服务器,但就是启动不了
就一步步排查问题,找了一大堆,最后我是靠注释掉所有启动时的配置代码,尝试着终于找到问题
问题代码AppConfig.java
//添加全局的小程序配置 WxaConfig wc = new WxaConfig(); wc.setAppId(PropKit.get("wxaappId")); wc.setAppSecret(PropKit.get("wxaappSecret")); WxaConfigKit.setWxaConfig(wc);
在pom.xml中我的错误依赖代码
<dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-weixin</artifactId> <version>1.9</version> <scope>provided</scope> </dependency>
我使用的是较新版本的jfinal-weixin-1.9.jar包
而服务器上/usr/local/tomcat/lib目录下的是jfinal-weixin-1.8.jar的jar包
旧版本没有该对应代码,所以就启动不成功了,但奇怪的是我查看tomcat的日志文件却没有明显错误提示,只是说
SEVERE: One or more listeners failed to start.
这个查看详细日志在哪看,这个都不知道,百度也找不到,烦躁
搜索的下,这个
<scope>provided</scope> <!-- compile:开发环境, provided:部署环境 -->
如果是provided时,这个jar包是不会被编译到war包的WEB-INF/lib目录下,项目就会用tomcat/lib目录下的jar包,
compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
将该依赖改为下面的,重新编译上传。终于搞定了,为自己的无知又添加了一笔
<dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-weixin</artifactId> <version>1.9</version> <scope>compile</scope> </dependency>
给一个图吧