如何使用cargo部署特定的子项目:start using maven

2024-01-19

我有一个开发的应用程序,我只是想让构建过程变得简单。父级的 POM 文件如下所示:

<parent>
    <groupId>com.shc.obu.ca</groupId>
    <artifactId>shcobuca-pom</artifactId>
    <version>1.1.0</version>   </parent>

  <groupId>com.shc.obu.ca.osol</groupId> <artifactId>apps-pom</artifactId>   <version>${currVersion}</version>   <packaging>pom</packaging>   <name>Outlet Apps</name>

  <scm>
    <connection>scm:svn:https://ushofsvpsvn2.intra.searshc.com/svn/outlet/outlet/trunk/apps</connection>
    <developerConnection>scm:svn:https://ushofsvpsvn2.intra.searshc.com/svn/outlet/outlet/trunk/apps</developerConnection> </scm>
    <profiles>
    <profile> <id>www</id>
      <activation> <activeByDefault>true</activeByDefault> </activation>
      <modules>
        <module>www</module>
        <module>modules</module> 
      </modules>
    </profile>
    <profile> 
      <id>mts</id>
      <activation> <activeByDefault>true</activeByDefault> </activation>
      <modules>
        <module>mts</module> 
        <module>modules</module> 
      </modules>
    </profile>
    <profile> <id>search</id>
      <activation> <activeByDefault>true</activeByDefault> </activation>
      <modules>
        <module>modules</module> 
        <module>search</module> 
      </modules>
    </profile>   </profiles>

  <repositories>
    <repository>
      <id>obu.ca.repo.release</id>
      <snapshots><enabled>false</enabled></snapshots>
      <url>http://maven.cal.intra.sears.com/release</url>
    </repository>
    <repository>
      <id>obu.ca.repo.snapshot</id>
      <releases><enabled>false</enabled></releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>interval:5</updatePolicy>
      </snapshots>
      <url>http://maven.cal.intra.sears.com/snapshot</url>
    </repository>   </repositories>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <env>trunk</env>
    <currVersion>1.2.0</currVersion>   </properties>   </project>

该文件显示它具有三个配置文件,它们基本上是独立的子项目。我将货物插件添加到该文件中,如下所示:

<build>
  <plugins>
      <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.0</version>
        <configuration>
          <container>
              <containerId>tomcat6x</containerId>
              <home>
                  C:\tools\apache-tomcat-6.0.26
              </home>
          </container>
          <configuration>
              <properties>
                  <cargo.servlet.port>
                      8082
                  </cargo.servlet.port>
                  <cargo.jvmargs>
                      "-Xdebug" "-Xrunjdwp:transport=dt_socket,address=4646,server=y,suspend=n"
                  </cargo.jvmargs>
              </properties>
          </configuration>     
        </configuration>  
      </plugin>
  </plugins>
  </build>

但是当我运行“mvn Cargo:start”时,tomcat 实例运行良好,但没有部署任何子应用程序。有没有办法让我的第一个子应用程序 (www)(生成一个名为 www-webapp-1.2.0.war 的 war 文件)自动部署?

Update:谢谢帕斯卡。我尝试修改构建标签如下:

<build>
  <plugins>
      <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <version>1.0</version>
        <configuration>
          <container>
              <containerId>tomcat6x</containerId>
              <home>
                  C:\tools\apache-tomcat-6.0.26
              </home>
          </container>
          <configuration>
              <properties>
                  <cargo.servlet.port>
                      8082
                  </cargo.servlet.port>
                  <cargo.jvmargs>
                      "-Xdebug" "-Xrunjdwp:transport=dt_socket,address=4646,server=y,suspend=n"
                  </cargo.jvmargs>
              </properties>              
              <deployables> 
                <deployable> 
                  <groupId>com.shc.obu.ca.osol</groupId> 
                  <artifactId>www-webapp-1.2.0</artifactId> 
                  <type>war</type> 
                  <properties> 
                    <context>acontext</context> 
                  </properties> 
                </deployable> 
              </deployables>               
          </configuration>    
        </configuration>  
      </plugin>
  </plugins>
  </build>

但它仍然不起作用。它给出的构建错误如下:

Artifact [com.shc.obu.ca.osol:www-webapp-1.2.0:war] 不是项目的依赖项。 我也尝试了“www-webapp”和“www”作为工件 ID,但错误仍然相同。

当我将相同的内容添加到依赖标记时,它会给出某种循环引用错误,如下所示: “反应堆中的项目包含循环引用”


您需要列出您的www模块作为部署在内部的模块<deployable>元素。来自Maven2 插件参考指南 http://cargo.codehaus.org/Maven2+Plugin+Reference+Guide:

如果未指定可部署且项目的打包是 war、ear 或 ejb 并且未指定部署程序,则生成的工件将自动添加到要部署的可部署列表中

由于您的项目有一个packaing类型的pom,它不是部署的候选者,并且没有部署任何内容。

这是一个例子:

  <plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2-plugin</artifactId>
    <version>1.0</version>
    <configuration>
      <container>
        <containerId>tomcat6x</containerId>
        <home>C:\tools\apache-tomcat-6.0.26</home>
      </container>
      <configuration>
        <properties>
          <cargo.servlet.port>8082</cargo.servlet.port>
          <cargo.jvmargs>
              "-Xdebug" "-Xrunjdwp:transport=dt_socket,address=4646,server=y,suspend=n"
          </cargo.jvmargs>
        </properties>
        <deployables>
          <!-- application to deploy -->
          <deployable>
            <groupId>com.acme</groupId>
            <artifactId>mywebapp</artifactId>
            <type>war</type>
            <properties>
              <context>acontext</context>
            </properties>
          </deployable>
        </deployables>
      </configuration>     
    </configuration>  
  </plugin>

Update:

(...)它给出的构建错误如下

Artifact [com.shc.obu.ca.osol:www-webapp-1.2.0:war] 不是项目的依赖项。我也尝试了“www-webapp”和“www”作为工件 ID,但错误仍然相同。

我忘了这一点,但看起来货物预计deployable成为 Cargo 启动项目的依赖项。

当我将相同的内容添加到依赖项标签时,它会给出某种循环引用错误,如下所示:“反应器中的项目包含循环引用”

这是正常的。工件不能是给定项目的子模块和依赖项,否则您将获得循环依赖项(您需要依赖项来构建模块,这就是依赖项,先有鸡还是先有蛋的问题)。

我的建议是将货物配置移至www模块或为功能测试创建专用模块(这通常是我所做的)并声明www作为该模块的依赖项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用cargo部署特定的子项目:start using maven 的相关文章

  • 将 Maven Java 编译器调试设置为 false 不会删除行号表?

    也许这是我缺乏理解 但我认为在 Maven Java 项目中执行此操作会禁用所有调试信息进入类文件
  • AspectJ 编织 Maven 模块

    我有一个项目 有多个 Maven 模块 其中之一包含我的方面 我如何获取各个方面并编织多个 Maven 模块 AspectJ Maven 插件的文档有点稀疏 无法找到很多示例 我尝试将aspectj 插件放入父pom 中 但它似乎没有应用其
  • 使用maven编译时,/src/main/java中是否需要有.java文件?

    我试图将一个项目转换为 Maven 项目 它的 java 文件位于 src main java 之外的其他位置 当我运行 maven install 时 除了那些 class 之外的所有文件 hbm xml 发生在我的罐子里 这是 pom
  • 如何:使用 maven2 进行数据库版本控制?

    我正在寻找任何用于版本控制数据库更改的 Maven 插件 有一些插件为此任务提供一些支持 Maven LiquiBase 插件 http www liquibase org manual maven Maven 数据库迁移插件 http c
  • 用Maven项目的源代码生成具有Maven目录结构的jar?

    我有一个使用 Maven 构建的 Web 应用程序 但我想用maven项目生成一个具有正确maven目录结构的JAR 我试过this http www sonatype com people 2010 01 how to create tw
  • 替代品?

    您建议用什么来替代 Maven Java 构建工具集 只是简单的 Ant 脚本吗 SCons 无论如何 这取决于你使用什么 马文1 马文2 我发现 Maven 2 有很好的文档记录 并且在与 Ant 任务和一些自制的 Java 插件结合使用
  • one-jar 删除有关应用程序加载的详细警告信息

    我正在使用 Maven 带有 one jar 插件 但是当我运行 one jar 可执行文件时 我遇到了一堵警告墙 这是不可接受的使用 我查看了一个罐子上的所有可用资源 但没有看到有关如何保持罐子在运行时发出大量警告的说明 有人解决了这个问
  • spring-data-jpa 和 querydsl 的 Maven 构建问题

    我有一个用于 spring data jpa 和 QueryDsl 的 Eclipse Maven 项目 我似乎对 maven apt plugin 有问题 如果我执行 mvn clean 然后执行 mvn install 它会尝试 处理
  • 如何在 IDE 中使用 Grails 依赖项

    So I finally https stackoverflow com questions 1867064 grails and local maven dependencies让我的依赖项与 Grails 一起工作 现在 我的 IDE
  • 如何模块化(大型)Java 应用程序?

    我手头有一个相当大的 几个 MLOC 应用程序 我想将其拆分为更易于维护的单独部分 目前该产品由大约 40 个 Eclipse 项目组成 其中许多项目具有相互依赖性 仅此一点就使得连续构建系统变得不可行 因为每次签入都必须进行大量重建 有没
  • 如何让 Jenkins 在 Maven 2 构建上 --fail-fast?

    我正在尝试使用 Jenkins 构建一个多模块 Maven 项目 当我在命令行使用相同的环境 variables settings xml user 正如 Jenkins 所做的那样 测试失败会导致构建立即失败 Failed tests t
  • maven中这两个设置一样吗?

    我想限制maven仅使用私有 非公共maven存储库 这两个设置具有相同的效果吗 1 settings xml中设置镜像
  • 如何从不知道要卸载的工件名称或工件组 ID 的脚本中执行与 mvn install 相反的操作? [复制]

    这个问题在这里已经有答案了 这听起来应该很容易 但我还没有找到答案 如果我使用 mvn install 安装一个工件 如何删除该工件 我尝试使用 dependency purge local repository 但它只删除依赖项 而不是实
  • Maven 2 checkstyle 插件版本 2.5 - configLocation 问题

    我在 maven 2 中使用 checkstyle 插件 我现在想要将我的配置文件从默认文件切换为 a 在线文件 或 b 本地文件 我尝试了以下两件事 但都不起作用 有什么建议么 A 本地文件 直接位于我的项目文件夹中的 pom xml 旁
  • JPA 2.0 API Maven 工件

    我正在使用 JPA 2 0 我的持久性提供程序是 Hibernate 但是 我只想包含 javax 中的标准 API 但在中心 没有 2 0 工件 我目前正在使用 Hibernate JPA 2 0 工件 但我想使用更标准的东西 这可能吗
  • Maven - 在构建时包含不同的文件

    我有十个 WAR 文件 所有这些文件都有几乎相同的代码和标记 唯一的区别在于图像 CSS 和消息 我偶然发现了配置文件的概念 但我还没有完全理解它 我不确定这是否可以处理我需要它做的事情 基本上 我想要一个针对 10 个不同 WAR 具有不
  • 如何定制Maven唯一版本字符串?

    我想知道有哪些选项可以自定义 Maven 工件部署时使用的时间戳字符串
  • 在Maven中生成Version.java文件

    我有一个使用 Ant 脚本构建的 Java 项目 我正在尝试将项目转换为 Maven 其中一项任务生成一个名为 Version java 的 Java 源文件 其中包含编译时间戳的静态字符串表示形式 如下所示 package com foo
  • 调试 Maven 的“工件没有有效范围”

    我们在工作中经常使用 Maven 我们会收到错误消息 工件没有有效范围 经过很长时间的谷歌搜索和实验 我意识到这个错误消息的含义 工件does有有效范围 只是太多了 例如 我的主 POM 仅依赖于 superframework v 1 0
  • Maven - 将 XSD 作为依赖项

    我们有一个项目定义了它使用 XSD 文件生成的消息格式 将这些 XSD 文件作为另一个项目的依赖项的最简单方法是什么 我正在考虑使用maven build helper 附加工件 http www mojohaus org build he

随机推荐

  • 在 JApplet 上运行的 JPanel

    我正在设计一个 JApplet 基本上这个小程序将允许用户绘制二次方程图 并插入 x 轴和 y 轴的范围 但要达到这一目标 还有很多工作要做 我仍处于设计界面的阶段 这是我的代码 import java awt Dimension impo
  • Spring启动-配置EntityManager

    我正在使用Google guice在我的项目中 现在我尝试将框架转换为SpringBoot完全 我配置了 Beanpersistence xml like below in Autowired Bean name transactionMa
  • Java awt.Robot:CTRL+ALT+DEL 未调出所需的屏幕

    我最近刚刚发现 awt Robot 库 我很高兴能够使用它 我以为我应该对我的朋友开个小恶作剧 让机器人按控制 Alt 删除按锁定计算机按钮 但我无法让程序调出控制 Alt 删除屏幕 这是我的代码 import java awt impor
  • 构建发布时出现颤动警告

    当我尝试构建 release 我的应用程序时 我不断收到这些红色警告 尝试扑干净 flutter clean cache 没有任何作用 所有包都是最新的 我的构建 Gradle buildscript ext kotlin version
  • 高效地将字节数组转换为十进制

    如果我有一个字节数组并且想要转换该数组的连续 16 字节块 其中包含 net 的表示形式Decimal 转化为适当的Decimalstruct 最有效的方法是什么 在我正在优化的情况下 以下代码在我的分析器中显示为最大的 CPU 消耗者 p
  • 如何在.NET Framework 3.5上使用Stream.CopyTo?

    我找到了上传代码 该代码包含Stream CopyTo method Example file Stream CopyTo requestStream NET Framework 4 0 如何将 file Stream 复制到 reques
  • 比较 list 类型的 Python 字典值,看看它们是否按顺序匹配

    prefs s1 a b c d e s2 c d e a b s3 a b c d e s4 c d e b e 我有一本字典 我想比较每个键的值 类型 列表 以查看它们是否按该顺序存在 因此 本质上我试图迭代每个键值对 并将列表类型的值
  • 在 Android 中从 Facebook 检索用户名和性别

    这就是我检索存储在共享首选项中的信息 然后比较用户名和密码是否存在的方法 如果用户登录 我可以显示另一个活动 SharedPreferences 设置 getSharedPreferences logindetails 0 String u
  • Java 中的悬空线程

    Java 中的悬空线程会发生什么 就像我创建一个应用程序并且它生成多个线程一样 其中一个线程未完成 主程序在此之前完成 这条悬空的线会发生什么 它会无限地留在线程池中还是 JVM 将在阈值时间段后杀死线程 这取决于线程是否被标记为 守护进程
  • 在 char 中分配多个字符

    为什么这个程序给出输出 y include
  • 如何对结构体数组进行排序

    如何按项目名称的字母顺序对 oo 结构数组进行排序 oo struct Item Quill Ink Pen Pencil Cost 10 2 1 我尝试使用 sort 函数但它不起作用 谢谢 首先索引您的字段 在本例中oo Items它返
  • jQuery 泄漏问题已解决,但为什么呢?

    我正在开发一个包含大量 JavaScript 的大型企业应用程序 够了 我不可能遍历并修复过去 5 年开发中创建的所有小循环引用 在研究解决方案时 我遇到了这个小的 jQuery 黑客 补丁 http kossovsky net index
  • Java邮件超时和连接超时处理

    我正在使用 JavaMail 将电子邮件请求发送到 SMTP 服务器 我想同时设置 邮件 smtp 连接超时 and 邮件 smtp 超时 我的代码中的属性 以编程方式 我想在以下情况下捕获两者timeout and or 连接超时Java
  • 获取过时的 Composer 软件包列表

    我想获取过时的软件包列表 这些软件包将在我发布时更新composer update 作曲家有这样的功能吗 如果没有 有没有办法做到这一点 有或没有作曲家 Update Since Composer v1 1 2016 年 5 月 https
  • Django - postgres:如何在 JsonB 字段上创建索引

    我想允许在 ID 上的 JsonB 字段上建立索引 该 ID 深入到我们 Django 项目中的 json 数据的几个级别 JSONB 数据如下所示 foreign data some key val src data VEHICLE ti
  • 以编程方式卸载/删除 Firefox 扩展?

    有没有办法以编程方式卸载 Firefox 扩展 如果是 是否可以从其他扩展执行此脚本 使用以下方式获取附加组件的参考AddonManager getAddonByID https developer mozilla org en US Ad
  • 安装 RMySQL 时出错

    在我的 Linux 机器上安装 RMySQL 花了很长时间 但在更改环境变量并复制并粘贴 lib dll 文件后我能够安装它 然而 我现在正在尝试在我的64位window机器上安装RMySQL 但到目前为止两天还没有任何进展 运行命令 后它
  • Angular 6 材质:mat-tab-link 通过下划线选择

    我有一个mat tab nav bar我的网站的导航栏 但是mat tab link蓝色下划线条不会追随活动按钮 它只是停留在第一个按钮上 不会移动 尽管背景颜色发生变化 但按钮确实会变成活动状态 并且它们可以很好地路由到相应的页面 这是a
  • 如何根据子视图的高度设置父视图的高度

    我想写一个定制的家长View其中包括其中之一Text组件子视图或两个Text组件子视图 有没有办法设置父级View的高度基于Text视图的高度 class ParentView extends Component constructor p
  • 如何使用cargo部署特定的子项目:start using maven

    我有一个开发的应用程序 我只是想让构建过程变得简单 父级的 POM 文件如下所示