无法使用 Jenkins 管道在本地部署 mule 4 应用程序

Posted

技术标签:

【中文标题】无法使用 Jenkins 管道在本地部署 mule 4 应用程序【英文标题】:Not able to deploy mule 4 application in on-premise using Jenkins pipeline 【发布时间】:2020-01-29 05:51:09 【问题描述】:

我正在尝试使用 jenkin 管道部署 mule 4 应用程序,但在部署过程中出现以下错误:

[错误] 无法在项目 helloworld 上执行目标 org.mule.tools.maven:mule-maven-plugin:3.3.5:deploy (default-deploy):执行目标 org.mule.tools 的默认部署。 maven:mule-maven-plugin:3.3.5:deploy failed: Mule Runtime 没有运行!

添加我的 pom.xml。

      <?xml version="1.0" encoding="UTF-8" standalone="no"?>
      <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>com.mycompany</groupId>
<artifactId>helloworld</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>mule-application</packaging>
<name>helloworld</name>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <app.runtime>4.2.2</app.runtime>
    <mule.maven.plugin.version>3.3.5</mule.maven.plugin.version>
    <proejct.site.deploy.url>E:\IDFC\mule-enterprise-standalone-4.2.2\apps</proejct.site.deploy.url>

</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.mule.tools.maven</groupId>
            <artifactId>mule-maven-plugin</artifactId>
            <version>$mule.maven.plugin.version</version>
            <extensions>true</extensions>
            <configuration>
             <standaloneDeployment>
                <muleHome>E:\IDFC\mule-enterprise-standalone-4.2.2</muleHome>
                <muleVersion>4.2.2</muleVersion>
             </standaloneDeployment>
           </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <executions>
            <execution>
             <id>default-deploy</id>
             <phase>deploy</phase>
             <goals>
              <goal>deploy</goal>
             </goals>
            </execution>
          </executions>  
        </plugin>
    </plugins>
</build>


<dependencies>
    <dependency>
        <groupId>org.mule.connectors</groupId>
        <artifactId>mule-http-connector</artifactId>
        <version>1.5.11</version>
        <classifier>mule-plugin</classifier>
    </dependency>
    <dependency>
        <groupId>org.mule.connectors</groupId>
        <artifactId>mule-sockets-connector</artifactId>
        <version>1.1.5</version>
        <classifier>mule-plugin</classifier>
    </dependency>
    <dependency>
        <groupId>org.mule.connectors</groupId>
        <artifactId>mule-db-connector</artifactId>
        <version>1.5.5</version>
        <classifier>mule-plugin</classifier>
    </dependency>
</dependencies>

<repositories>
      <repository>
        <id>anypoint-exchange-v2</id>
        <name>Anypoint Exchange</name>
        <url>https://maven.anypoint.mulesoft.com/api/v2/maven</url>
        <layout>default</layout>
    </repository>
    <repository>
        <id>mulesoft-releases</id>
        <name>MuleSoft Releases Repository</name>
        <url>https://repository.mulesoft.org/releases/</url>
        <layout>default</layout>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>mulesoft-releases</id>
        <name>mulesoft release repository</name>
        <layout>default</layout>
        <url>https://repository.mulesoft.org/releases/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

在 Jenkins 中直到构建它正在工作,但是在部署时我遇到了错误。 对于部署过程使用自定义工作区目录并执行自定义批处理命令 mvn package deploy -DmuleDeploy。 在这里它失败了,下面添加了错误。 这是我必须部署的独立服务器:C:\AnypointStudio\mule-enterprise-standalone-4.2.2\apps

你能检查一下我的 pom.xml 还有什么我需要添加的吗? 让我知道在独立服务器上部署我做错了什么?

【问题讨论】:

【参考方案1】:

Mule Maven 插件抱怨位于 C:\AnypointStudio\mule-enterprise-standalone-4.2.2\ 的目标独立 Mule Runtime 未运行。日志错误说明了很多:Mule Runtime is not running!。 documentation for the standalone deployment configuration 似乎暗示它应该正在执行。

在尝试部署到它之前,您需要确保它已启动并运行。

注意,在名为 AnypointStudio 的目录中安装独立的 Mule Runtime 有点令人困惑。独立运行时不是 Anypoint Studio 的一部分,也不以任何方式与 Studio 交互。

【讨论】:

嗨 @aled 将独立的 Mule 运行时更改为 E:\IDFC\mule-enterprise-standalone-4.2.2 并启动了 mule.bat 文件。但在项目文件夹中运行 mvn clean package deploy -DmuleDeploy 时仍然出现相同的错误。你能检查一下 pom.xml 上还需要什么吗?

以上是关于无法使用 Jenkins 管道在本地部署 mule 4 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法将自定义 Mule 连接器部署到 Anypoint Exchange

在 Jenkins 管道中使用 Ansible 进行部署

在 Jenkins Pipeline 中访问本地运行的容器

使用 jenkins 管道在 Windows 服务器上部署 jar

Selenium:无法在 Jenkins 管道中创建用于下载的文件夹和文件

使用多个Jenkins工件创建Xl部署包