如何让tomcat自动加载jar包?

时间:2022-09-19 11:18:08
各位大虾们,帮我看下如下问题呀,

用的svn,jar包是maven来管理的,每次从svn下取得最新代码用tomcat布署,jar包也布署过去了,启动OK,,

如果将工程CLOSE下,再启动TOMCAT后却报错, 发现LIB下面的JAR包全部没有了,必须再重新从SVN下获取最新代码才可以布署成功?或者运行TOMCAT下的CLEAN命令,也会将LIB下面的JAR包全部清除了,,....

这个问题如何处理呀?

请问下TOMCAT下有没有配置布署JAR包的设置呀?

17 个解决方案

#1


将工程CLOSE下?什么CLOSE

#2


引用 1 楼 runffer_yang 的回复:
将工程CLOSE下?什么CLOSE


就是将工程关闭呀,在工程上点右键CLOSE呀,

其实这种情况还发生在,当对TOMCAT进行CLEAN时,会将WEB-INF下面的LIB文件夹下面的JAR包全部清除掉,当再布署时,相应的JAR包不会自动加载到LIB目录下,,

所以想问问大家有没有更好的策略呀,,,,,

#3


部署不是这样的吧.Tomcat的话用maven的war插件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>xxx</groupId>
  <artifactId>xxx</artifactId>
  <packaging>war</packaging>
  <name>xxx</name>
  <version>0.1</version>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <webappDirectory>WebContent</webappDirectory>
        </configuration>
      </plugin>
maven package后把war文件放到你的Tomcat的webapps下

#4


楼上正解。还没发现有lz的问题,项目关了,你还重新部署什么啊??再说你close了,tomcat下也不会把项目删了啊?除非你删除时选择把文件删除。
<Context path="/companySys" reloadable="true" docBase="D:\Program Files\StrutsProgram\companySys" workDir="D:\Program Files\StrutsProgram\companySys\work" />这是tomcat的server.xml部署项目的写法,启动tomcat就发布了项目。

#5


close工程跟这个没什么关系吧

#6


close工程之后,再将工程open,tomcat布署的目录下面的lib文件夹下面的全部jar文件都没有了,

<Context docBase="appMarketWebApi0.3" path="/appMarketWebApi0.3" reloadable="true" source="org.eclipse.jst.j2ee.server:appMarketWebApi0.3"/>

还有就是就在点击tomcat的命令:clean后,lib下面的jar包全没了。。。再后再publish,jar就不会再下载至lib下面了。。。。我用是maven来进行jar包管理。

#7


引用 3 楼 runffer_yang 的回复:
部署不是这样的吧.Tomcat的话用maven的war插件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0 </modelVersion>
  <groupId>xxx </groupId>
  <artifactId>xxx </artifactId>
  <packaging>war </packaging>
  <name>xxx </name>
  <version>0.1 </version>

      <plugin>
        <groupId>org.apache.maven.plugins </groupId>
        <artifactId>maven-war-plugin </artifactId>
        <version>2.0.2 </version>
        <configuration>
          <webappDirectory>WebContent </webappDirectory>
        </configuration>
      </plugin>
maven package后把war文件放到你的Tomcat的webapps下


是用war进行打包的,但在开发阶段,这样很慢呀,

#8


这些jar包自己手动放到工程的 web-info/lib下,而不用 IDE的那种导包方式,部署过去,那jar也会跟着部署过去。

#9


引用 8 楼 youjianbo_han_87 的回复:
这些jar包自己手动放到工程的 web-info/lib下,而不用 IDE的那种导包方式,部署过去,那jar也会跟着部署过去。


我现在就想要的是部署工程时,jar包也跟着过去呀。。。人才导包的话,时间会很长哦,,,

我用的是maven,,想要把包手动copy,会很慢的,不利于开发效率呀。。。。

#10


打包是实际发布的时候,发布到demo服务器或production服务器.
WTP在Eclipse不是自动部署到.mededata/.plugins/org.eclipse.wst.server.core 下么.

#11


你把所有需要的jar包放在lib目录下就行了。应该不会报错。

#12


8楼正解

#13


同样问题 实在不想copy..

#14


这样的问题还是没有解决,tomcat的clean命令后,lib下面的jar 全部都没有了,需要重新copy进去,工程才能跑起来,,,,jar 包不能自动加载进去呀,

#15


ANT  写一个脚本 即可   <?xml version="1.0" encoding="gb2312" ?> 
- <!--  项目编译脚本 2006-08-21重写 
  --> 
- <project default="init-tomcat-conf" name="project" basedir=".">
- <!--  公共脚本部分 
  --> 
  <property environment="env" /> 
  <property file="project.properties" /> 
- <!--  不同项目之间切换 脚本, 初始化tomcat 调试环境 
  --> 
- <target name="init-tomcat-conf">
  <delete dir="${tomcat.dir}/work" /> 
- <delete>
  <fileset dir="${tomcat.webapp.conf.dir}" includes="*.xml" /> 
  </delete>
- <copy overwrite="true" todir="${tomcat.webapp.conf.dir}">
- <fileset dir="${project.src.dir}/conf">
  <include name="*.xml" /> 
  </fileset>
  </copy>
  </target>
- <!--  拷贝项目的公共库包 
  --> 
- <target name="copy-common-library">
- <copy todir="${project.lib.dir}">
- <fileset dir="${common.library.dir}">
  <include name="projects.common-5.1.jar" /> 
  </fileset>
  </copy>
  </target>
- <!--  发布到网站目录
  --> 
- <target name="publish-to-site">
- <copy todir="${site.publish.dir}">
- <fileset dir="${project.web.dir}">
  <include name="**/*" /> 
  <exclude name="**/CVS/*" /> 
  </fileset>
  </copy>
  </target>
  </project>

#16


project.properties 文件如下:
### project lib dir 
project.src.dir     = src
project.web.dir     = webapp
project.lib.dir     = webapp/WEB-INF/lib
project.tld.dir     = webapp/WEB-INF/tlds
project.classes.dir = webapp/WEB-INF/classes

project.template                           = ${env.XDOCLET_HOME}/template
project.template.mergeDir                  = src/conf/template

tomcat.dir                = f:/Java/jakarta-tomcat-5.5.9
tomcat.webapp.conf.dir    = ${tomcat.dir}/conf/Catalina/localhost
webapp.path = webapp
java.home   = ${env.MY_JAVA}/jrockit
tomcat.home = ${tomcat.dir}

common.library.dir = g:/


#17


确实 我也遇到这样的问题了 还是没办法 解决 我现在想放到tomcat下面自动加载

#1


将工程CLOSE下?什么CLOSE

#2


引用 1 楼 runffer_yang 的回复:
将工程CLOSE下?什么CLOSE


就是将工程关闭呀,在工程上点右键CLOSE呀,

其实这种情况还发生在,当对TOMCAT进行CLEAN时,会将WEB-INF下面的LIB文件夹下面的JAR包全部清除掉,当再布署时,相应的JAR包不会自动加载到LIB目录下,,

所以想问问大家有没有更好的策略呀,,,,,

#3


部署不是这样的吧.Tomcat的话用maven的war插件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>xxx</groupId>
  <artifactId>xxx</artifactId>
  <packaging>war</packaging>
  <name>xxx</name>
  <version>0.1</version>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <webappDirectory>WebContent</webappDirectory>
        </configuration>
      </plugin>
maven package后把war文件放到你的Tomcat的webapps下

#4


楼上正解。还没发现有lz的问题,项目关了,你还重新部署什么啊??再说你close了,tomcat下也不会把项目删了啊?除非你删除时选择把文件删除。
<Context path="/companySys" reloadable="true" docBase="D:\Program Files\StrutsProgram\companySys" workDir="D:\Program Files\StrutsProgram\companySys\work" />这是tomcat的server.xml部署项目的写法,启动tomcat就发布了项目。

#5


close工程跟这个没什么关系吧

#6


close工程之后,再将工程open,tomcat布署的目录下面的lib文件夹下面的全部jar文件都没有了,

<Context docBase="appMarketWebApi0.3" path="/appMarketWebApi0.3" reloadable="true" source="org.eclipse.jst.j2ee.server:appMarketWebApi0.3"/>

还有就是就在点击tomcat的命令:clean后,lib下面的jar包全没了。。。再后再publish,jar就不会再下载至lib下面了。。。。我用是maven来进行jar包管理。

#7


引用 3 楼 runffer_yang 的回复:
部署不是这样的吧.Tomcat的话用maven的war插件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0 </modelVersion>
  <groupId>xxx </groupId>
  <artifactId>xxx </artifactId>
  <packaging>war </packaging>
  <name>xxx </name>
  <version>0.1 </version>

      <plugin>
        <groupId>org.apache.maven.plugins </groupId>
        <artifactId>maven-war-plugin </artifactId>
        <version>2.0.2 </version>
        <configuration>
          <webappDirectory>WebContent </webappDirectory>
        </configuration>
      </plugin>
maven package后把war文件放到你的Tomcat的webapps下


是用war进行打包的,但在开发阶段,这样很慢呀,

#8


这些jar包自己手动放到工程的 web-info/lib下,而不用 IDE的那种导包方式,部署过去,那jar也会跟着部署过去。

#9


引用 8 楼 youjianbo_han_87 的回复:
这些jar包自己手动放到工程的 web-info/lib下,而不用 IDE的那种导包方式,部署过去,那jar也会跟着部署过去。


我现在就想要的是部署工程时,jar包也跟着过去呀。。。人才导包的话,时间会很长哦,,,

我用的是maven,,想要把包手动copy,会很慢的,不利于开发效率呀。。。。

#10


打包是实际发布的时候,发布到demo服务器或production服务器.
WTP在Eclipse不是自动部署到.mededata/.plugins/org.eclipse.wst.server.core 下么.

#11


你把所有需要的jar包放在lib目录下就行了。应该不会报错。

#12


8楼正解

#13


同样问题 实在不想copy..

#14


这样的问题还是没有解决,tomcat的clean命令后,lib下面的jar 全部都没有了,需要重新copy进去,工程才能跑起来,,,,jar 包不能自动加载进去呀,

#15


ANT  写一个脚本 即可   <?xml version="1.0" encoding="gb2312" ?> 
- <!--  项目编译脚本 2006-08-21重写 
  --> 
- <project default="init-tomcat-conf" name="project" basedir=".">
- <!--  公共脚本部分 
  --> 
  <property environment="env" /> 
  <property file="project.properties" /> 
- <!--  不同项目之间切换 脚本, 初始化tomcat 调试环境 
  --> 
- <target name="init-tomcat-conf">
  <delete dir="${tomcat.dir}/work" /> 
- <delete>
  <fileset dir="${tomcat.webapp.conf.dir}" includes="*.xml" /> 
  </delete>
- <copy overwrite="true" todir="${tomcat.webapp.conf.dir}">
- <fileset dir="${project.src.dir}/conf">
  <include name="*.xml" /> 
  </fileset>
  </copy>
  </target>
- <!--  拷贝项目的公共库包 
  --> 
- <target name="copy-common-library">
- <copy todir="${project.lib.dir}">
- <fileset dir="${common.library.dir}">
  <include name="projects.common-5.1.jar" /> 
  </fileset>
  </copy>
  </target>
- <!--  发布到网站目录
  --> 
- <target name="publish-to-site">
- <copy todir="${site.publish.dir}">
- <fileset dir="${project.web.dir}">
  <include name="**/*" /> 
  <exclude name="**/CVS/*" /> 
  </fileset>
  </copy>
  </target>
  </project>

#16


project.properties 文件如下:
### project lib dir 
project.src.dir     = src
project.web.dir     = webapp
project.lib.dir     = webapp/WEB-INF/lib
project.tld.dir     = webapp/WEB-INF/tlds
project.classes.dir = webapp/WEB-INF/classes

project.template                           = ${env.XDOCLET_HOME}/template
project.template.mergeDir                  = src/conf/template

tomcat.dir                = f:/Java/jakarta-tomcat-5.5.9
tomcat.webapp.conf.dir    = ${tomcat.dir}/conf/Catalina/localhost
webapp.path = webapp
java.home   = ${env.MY_JAVA}/jrockit
tomcat.home = ${tomcat.dir}

common.library.dir = g:/


#17


确实 我也遇到这样的问题了 还是没办法 解决 我现在想放到tomcat下面自动加载