当前位置: 首页 > 知识库问答 >
问题:

从Maven antrun插件运行货物

堵景天
2023-03-14

我有一个maven(多模块)项目,为JBoss AS 7.1.x创建一些WAR和EARhtml" target="_blank">文件。

出于一个目的,我需要将一个模块的一个生成的EAR文件部署到一个新的JBoss实例并运行它,对它调用一些REST web服务调用并停止JBoss。然后,我需要将这些调用的结果打包并写入数据库。

目前,我正在尝试使用CARGO和专家蚂蚁运行插件来执行此任务。

不幸的是,我不能让三个(maven、ant run和CARGO)一起玩。我没有货物ant示例中使用的uberjar。如何配置ant run任务,以便cargo ant任务可以创建、启动、部署我的JBoss?理想情况下,是由cargo-maven2-plugin在另一个阶段解包和配置的吗?

或者,有没有更好的方法来实现我创建数据库的目标?

我不能真正使用集成测试阶段,因为它是在包阶段之后执行的。所以,我计划在编译阶段使用ant-run来完成这一切。

再次澄清:

我需要执行以下操作:启动JBoss;部署WAR;等待WAR启动完成;部署EAR文件;等待EAR初始化其数据库;在EAR实现的中调用一些web服务;停止JBoss;打包数据库。

所有这些步骤都需要严格按顺序进行。

共有1个答案

祁绪
2023-03-14

下面的部分给你一个印象,如何做到这一点。你必须改变细节。在给定的情况下,我使用一个雄猫。这将下载Tomcat归档文件,解压缩并在本地安装Tomcat...

 <plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <configuration>
      <wait>false</wait>
      <container>
        <containerId>tomcat${tomcat.major}x</containerId>
        <zipUrlInstaller>
          <url>http://archive.apache.org/dist/tomcat/tomcat-${tomcat.major}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz</url>
          <extractDir>${project.build.directory}/extract/</extractDir>
          <downloadDir>${project.build.directory}/download/</downloadDir>
        </zipUrlInstaller>
        <output>${project.build.directory}/tomcat${tomcat.major}x.log</output>
        <log>${project.build.directory}/cargo.log</log>
      </container>
      <configuration>
        <home>${project.build.directory}/tomcat-${tomcat.version}/container</home>
        <properties>
          <cargo.logging>high</cargo.logging>
          <cargo.servlet.port>9080</cargo.servlet.port>
          <cargo.tomcat.ajp.port>9008</cargo.tomcat.ajp.port>
        </properties>
      </configuration>
    </configuration>
    <executions>
      <execution>
        <id>start-container</id>
        <phase>pre-integration-test</phase>
        <goals>
          <goal>start</goal>
          <goal>deploy</goal>
        </goals>
        <configuration>
          <deployer>
            <deployables>
              <deployable>
                <groupId>${project.groupId}</groupId>
                <artifactId>mod-war</artifactId>
                <type>war</type>
                <pingURL>http://localhost:9080/mod-war</pingURL>
                <pingTimeout>30000</pingTimeout>
                <properties>
                  <context>mod-war</context>
                </properties>
              </deployable>
            </deployables>
          </deployer>
        </configuration>
      </execution>
      <execution>
        <id>stop-container</id>
        <phase>post-integration-test</phase>
        <goals>
          <goal>stop</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
 类似资料:
  • 我最近想创建一个插件,它可以运行从服务器到播放器的跟踪路由。我在java方面遇到了一些困难,因为我的服务器主机不允许我访问minecraft部分以外的其他文件,所以我不能正确设置我需要的库。 我想创建一个Rest API,它将在我拥有所有权限的VPS上,但我不确定我们是否可以从本地IP以外的另一个IP运行traceroute,我需要从minecraft服务器运行它到播放器。 我目前使用的trace

  • 我目前正在尝试使用bukkit插件。我每次都会遇到这个问题,想知道是否有人知道如何解决它。我已经尝试了你可以在谷歌上搜索的几乎所有修复方法,所以希望有人能分享一些光。 所有玩家事件都不起作用。当我用前面的@EventHandler做任何事情时,它就是不跑。下面是一个示例: 当在服务器上运行这个时,它永远不会看到玩家加入了游戏。

  • 我的问题是我想从Java代码(我的IntelliJ插件)运行shell命令: runtime.getruntime().exec(“ADB设备”) 但随后我收到IOException: 无法运行程序“adb”:错误=2,没有这样的文件或目录。 奇怪的是,当我在调试模式下运行它时,它正常工作,只有当我将插件部署到真正的Intellij时,它才会被破坏。该命令也可以从任何终端工作。现在唯一能起作用的是

  • 我使用货物专家插件来卸载jboss作为dist并部署我们的耳朵。我们使用的 JBoss 是 7.1.0 我的问题是,我们需要在JBoss中增加一个模块。如何将模块复制到JBoss的目标目录中? 我尝试使用此配置: 但这给了我这个错误: [错误] 未能在项目上执行目标组织代码haus.cargo:cargo-maven2-plugin:1.2.1:启动(启动容器)gevomanagementserv

  • 当我尝试使用以下命令在maven插件下运行时: 通用域名格式。wordpress。pomfromjarmavenplugin:generate:0.0.1-SNAPSHOT:generatepom 我得到了这个错误: 下载:https://oss.sonatype.org/content/repositories/snapshots/com/wordpress/pomfromjarmavenplu

  • 我的目标是在angular2中应用jQuery插件。它可以是任何插件,如jQuery.DataTable,bootstrap-select等。 我做的是抓取的数据服务。爵士 这里的问题是时差。在第一步,我绑定数据,在第二步,我应用插件,但我认为绑定有点慢,所以插件的代码在实际绑定html呈现之前运行。这给我带来了问题。 示例代码如下: 请建议。