maven打war包到指定目录下和tomcat下

from

[url]http://blog.csdn.net/qh_java/article/details/52205448[/url]

一、maven打war包到指定目录下

初步解决方法:
maven中更改target目录可以用<build>子目录<directory>,但是<directory>只能是相对于当前项目的目录,

虽然也能将war包打到项目外的目录下面,但是项目下会出现一个奇怪的很深的目录,有点不合适所以使用下面的插件来实现。

使用maven-dependency-plugin插件将war包打到指定的路径下:


<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<!--指定web.xml的路径 -->
<webXml>WebRoot\WEB-INF\web.xml</webXml>
<!--指定jsp、js、css的路劲 -->
<warSourceDirectory>WebRoot</warSourceDirectory>
</configuration>
</plugin>
<!--打war包到指定的目录下 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-war</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>${project.packaging}</type>
</artifactItem>
</artifactItems>
<!-- <outputDirectory>${dist.console.war.dir}</outputDirectory> -->
<!--指定war包保存地址-->
<outputDirectory>D:\Javaee\mypackage</outputDirectory>
<includes>
<include>*.war</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>


二、项目打包到tomcat下
环境:apache-maven-3.0.5、apache-tomcat-7.0.39

配置流程如下:

1、 apache-tomcat-7.0.39配置C:\Program Files\apache-tomcat-7.0.39\conf\tomcat-users.xml,因为tomcat7默认情况下没有配置manager访问权限,所以这里需要在tomcat-users.xml加入用户以及权限


[html] view plain copy print?在CODE上查看代码片派生到我的代码片
<tomcat-users>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
</tomcat-users>
2、apache-maven-3.0.5配置C:\Program Files\apache-maven-3.0.5\conf\settings.xml,为了让maven可以访问tomcat的权限,所以需要把如上创建的用户添加到settings.xml中,如下

[html] view plain copy print?在CODE上查看代码片派生到我的代码片
<servers>
<!-- 配置tomcat-/manager/text 访问权限 -->
<server>
<id>tomcat</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
3、工程目录下的pom.xml文件,加入build,并配置tomcat7的maven插件,如下配置

[html] view plain copy print?在CODE上查看代码片派生到我的代码片
<build>
<finalName>myApp</finalName>
<!-- directory缺省情况下指向target -->
<!--<directory>${basedir}/target</directory>-->
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<!-- server、username、password对应maven的setting下的配置 -->
<server>tomcat</server>
<username>admin</username>
<password>admin</password>
<path>/${project.build.finalName}</path>
<!-- war文件路径缺省情况下指向target -->
<!--<warFile>${basedir}/target/${project.build.finalName}.war</warFile>-->
</configuration>
</plugin>
</plugins>
</build>
 ${project.build.finalName}这个是根据xml的路径来标记的

ok 到这里配置结束了,下面看这么打包到tomcat下:
命令部署:


1、在部署之前,必须先启动tomcat7服务,C:\Program Files\apache-tomcat-7.0.39\bin\startup.bat

  找到要部署的工程文件根目录下,执行如下maven命令

  > mvn clean:install   //clean是清理输出文件,install编译打包,在每次打包之前必须执行clean,才能保证发布为最新文件

  > mvn tomcat7:redeploy   //第一次发布 tomcat7:deploy,再次发布 tomcat7:redeploy


2、错误问题

Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/deploy?path=%2FmyApp&war=

 


如上问题,有如下两个原因:

  A、由于maven没有权限访问http://localhost:8080/manager/text,所以需要在apache-tomcat下的tomcat-users.xml增加用户权限,并配置于maven的setting文件中

  B、由于maven-tomcat插件问题,通过http://search.maven.org/搜索tomcat-maven-plugin,发现最新版本之后,最后执行> mvn tomcat:redeploy,一直都会显示上面这个报错,这里如果是tomcat7,建议直接通过http://search.maven.org/搜索tomcat7-maven-plugin插件,执行> mvn tomcat7:redeploy,这样就部署成功了;如果tomcat6就直接通过http://search.maven.org/搜索tomcat6-maven-plugin

  所以这里需要注意tomcat7-maven-plugin插件的引入,正确引入将解决以上问题

  

  <groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>

  > mvn tomcat7:redeploy
  即可完成部署

maven打包部署到tomcat下文章来自:

http://www.cnblogs.com/candle806/p/3785708.html

http://www.yiibai.com/maven/deploy-maven-based-war-file-to-tomcat.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 如果你不使用Maven来打包war包,你可以使用传统的方式来进行。首先,确保你已经安装了Java开发工具包(JDK)和Tomcat服务器。然后,按照以下步骤进行操作: 1. 在命令行中进入项目的根目录。 2. 使用javac命令编译项目的所有Java源文件。例如,如果你的源文件在src目录下,可以使用以下命令:javac -d WEB-INF/classes src/*.java 3. 创建一个web.xml文件,并将其放置在WEB-INF目录下。这个文件是Web应用程序的配置文件,你可以根据你的需求进行配置。 4. 创建一个名为WEB-INF/lib的目录,并将所有的依赖库(JAR文件)放置在这个目录下。 5. 使用jar命令将项目打包成war文件。例如,如果你的项目名为myproject,可以使用以下命令:jar -cvf myproject.war * 6. 将生成的war文件复制到Tomcat的webapps目录下。 7. 启动Tomcat服务器,你的Web应用程序将会被部署并可以访问。 请注意,这种方式需要手动处理依赖库和配置文件,相对于使用Maven来说更加繁琐。因此,如果可能的话,建议使用Maven来打包war文件,它可以自动处理依赖和配置。 #### 引用[.reference_title] - *1* [Maven 项目打war包步骤](https://blog.csdn.net/m0_67402774/article/details/126435173)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [mavenwar包](https://blog.csdn.net/liuzhuojava/article/details/86691218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值