使用 maven-deploy-plugin

另一个非常有趣的话题是组装包的自动部署。假设我们使用 Maven 构建了自己的库。我们如何自动将其推送到本地、公司或中央 Maven 存储库?

Maven 为此有一个特殊的maven-deploy-plugin插件。例子:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
    	<version>2.5</version>
    	<configuration>
          <file>${project.build.directory}\${project.artifactId}-src.zip</file>
          <url>${project.distributionManagement.repository.url}</url>
          <repositoryId>${project.distributionManagement.repository.id}</repositoryId>
          <groupId>${project.groupId}</groupId>
          <artifactId>${project.artifactId}</artifactId>
          <version>${project.version}</version>
      	  <packaging>zip</packaging>
          <pomFile>pom.xml</pomFile>
    	</configuration>
  	</plugin>

通过这些设置,您可以将构建的库作为有效包推送到 Maven 存储库。我们不会详细分析这个过程,而是简单地考虑一下这里发生了什么:

文件标签指定一个文件,该文件将作为新库推送到 Maven 存储库。

url标记是 Maven 存储库的路径(local/corporate/...)。

repositoryId标记指定将进行部署的存储库的标识符。

groupIdartifactIdversion标签定义了 Maven 存储库中的标准包标识。正是通过这三个参数,一个库才能被唯一识别。

打包标签用于确保结果作为单个 zip 文件发送。如果您不指定它,那么将有一个 jar 文件,即使您有多个 jar 文件。

pomFile标记是可选的,它允许您将另一个 pom.xml 发送到不包含隐藏或开销数据的存储库。

使用 Maven 将 Web 应用程序部署到 Tomcat

Java Web 应用程序最流行的 Web 服务器是Apache Tomcat。当然,在 Maven 的帮助下,您可以将 war 文件直接部署到本地甚至远程 Tomcat 服务器。

稍后我们将学习如何安装和配置 Tomcat,但现在我们只涉及自动部署 Web 应用程序的主题。

步骤1。我们需要授予 Maven 访问 Tomcat 服务器的权限。为此,打开Apache Tomcat 解压目录中的conf/tomcat-users.xml文件并添加manager-guimanager-script角色:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="admin" password="admin" roles="manager-gui,manager-script" />
</tomcat-users>

第二步。允许 Maven 访问 Tomcat。为此,打开$MAVEN_HOME/conf/settings.xml文件并添加服务器:

<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
  <servers>
	<server>
  	<id>TomcatServer</id>
  	<username>admin</username>
  	<password>admin</password>
	</server>
  </servers>
</settings>

第三步。我们添加了一个特殊的插件,用于将我们的应用程序自动部署到 Apache Tomcat。该插件称为tomcat7-maven-plugin。顺便说一下,它不是由 Maven 开发人员创建的,而是由 Tomcat 开发人员创建的,正如您可以从名称中猜到的那样。

	<build>
    	<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>TomcatServer</server>
                	<path>/simpleProject</path>
            	</configuration>
        	</plugin>
    	</plugins>
	</build>

在配置部分,指定:

  • url是tomcat运行的地址和manager/text的路径
  • 服务器- 来自settings.xml文件的服务器 ID
  • path - 部署的应用程序可用的地址

部署管理命令:

mvn tomcat7:部署 将应用程序部署到 Tomcat
mvn tomcat7:取消部署 从 Tomcat 中删除应用程序
mvn tomcat7:重新部署 重新部署应用

使用 Cargo 插件部署

另一个用于部署 Web 应用程序的有用且通用的插件是Cargo 插件。他知道如何使用不同类型的网络服务器。以下是如何在 Apache Tomcat 中使用它进行部署:

<build>
    <plugins>
    	<plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
        	<version>1.9.10</version>
        	<configuration>
            	<container>
                	<containerId>tomcat8x</containerId>
                    <type>installed</type>
                	<home>Insert absolute path to tomcat 7 installation</home>
            	</container>
            	<configuration>
                    <type>existing</type>
                    <home>Insert absolute path to tomcat 7 installation</home>
            	</configuration>
        	</configuration>
   	    </plugin>
    </plugins>
</build>

要在本地 Tomcat 上安装 Web 应用程序,您只需运行以下命令:

mvn install
mvn cargo:deploy

如果我们要部署到远程 Web 服务器,那么我们将必须设置对此服务器的访问权限。为此,您只需要在pom.xml中注册它们:

<configuration>
	<container>
        <containerId>tomcat8x</containerId>
    	<type>remote</type>
	</container>
	<configuration>
    	<type>runtime</type>
    	<properties>
            <cargo.remote.username>admin</cargo.remote.username>
            <cargo.remote.password>admin</cargo.remote.password>
        	<cargo.tomcat.manager.url>http://localhost:8080/manager/text</cargo.tomcat.manager.url>
    	</properties>
	</configuration>
</configuration>

使用 IntelliJ IDEA 进行部署

Intellij IDEA 自己完成所有工作,您只需要安装Tomcat即可。

步骤1。创建本地 Tomcat 配置:

第二步。然后选择本地的Tomcat:

第三步。配置 Tomcat:

第四步。添加 Tomcat 文件夹的路径。

第五步。我们将项目作为工件添加到 Tomcat。

为此,转到部署选项卡并单击右侧的+按钮。

就这样。

对了,如果需要部署到远程服务器,第二步选择Remote Tomcat即可。