Maven 2 如何使用cargo部署特定的子项目:开始使用maven
我有一个已开发的应用程序,我只是想让构建过程变得简单。父级的POM文件如下所示:Maven 2 如何使用cargo部署特定的子项目:开始使用maven,maven-2,cargo,maven-cargo,Maven 2,Cargo,Maven Cargo,我有一个已开发的应用程序,我只是想让构建过程变得简单。父级的POM文件如下所示: <parent> <groupId>com.shc.obu.ca</groupId> <artifactId>shcobuca-pom</artifactId> <version>1.1.0</version> </parent> <groupId>com.shc.obu.c
<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>
com.shc.obu.ca
什科布卡波姆酒店
1.1.0
com.shc.obu.ca.osol应用程序pom${currVersion}pom出口应用程序
scm:svn:https://ushofsvpsvn2.intra.searshc.com/svn/outlet/outlet/trunk/apps
scm:svn:https://ushofsvpsvn2.intra.searshc.com/svn/outlet/outlet/trunk/apps
万维网
真的
万维网
模块
mts
真的
mts
模块
搜索
真的
模块
搜寻
obu.ca.repo.release
假的
http://maven.cal.intra.sears.com/release
obu.ca.repo.snapshot
假的
真的
间隔时间:5
http://maven.cal.intra.sears.com/snapshot
UTF-8
大旅行箱
1.2.0
该文件显示它有三个概要文件,它们基本上是独立的子项目。我正在将cargo插件添加到此文件,如下所示:
<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>
<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>
org.codehaus.cargo
cargo-maven2-plugin
1
tomcat6x
C:\tools\apache-tomcat-6.0.26
8082
“-Xdebug”“-Xrunjdwp:transport=dt_socket,地址=4646,服务器=y,挂起=n”
但当我运行“mvn cargo:start”时,tomcat实例运行良好,但没有一个子应用程序得到部署。有没有办法让我的第一个子应用程序(www)(它生成一个名为www-webapp-1.2.0.war的war文件)自动部署
更新:谢谢帕斯卡。我尝试修改build标记,如下所示:
<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>
<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>
org.codehaus.cargo
cargo-maven2-plugin
1
tomcat6x
C:\tools\apache-tomcat-6.0.26
8082
“-Xdebug”“-Xrunjdwp:transport=dt_socket,地址=4646,服务器=y,挂起=n”
com.shc.obu.ca.osol
www-webapp-1.2.0
战争
乌头文字
但它仍然不起作用。它给出的构建错误如下所示:
<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>
<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>
工件[com.shc.obu.ca.osol:www-webapp-1.2.0:war]不是项目的依赖项。
我也尝试将“www-webapp”和“www”作为工件id,但错误仍然是一样的
当我将其添加到依赖项标记中时,会出现如下循环引用错误:
“反应堆中的项目包含一个循环引用”您需要将您的
www
模块列为要部署在
元素中的模块。从:
如果未指定可部署项,并且项目的包装为war、ear或ejb,并且未指定部署者,则生成的工件将自动添加到要部署的可部署项列表中
由于您的项目具有类型为pom
的打包
,因此它不是部署的候选对象,因此不会部署任何内容
==================== PARENT 1 =========================
<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.blah.test</groupId>
<artifactId>blah-service</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>blah-service-module1</module>
<module>blah-service-module2</module>
<module>blah-service-module3</module>
</modules>
</project>
==================== MODULE 1 =========================
<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>
<parent>
<groupId>com.blah.test</groupId>
<artifactId>blah-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>blah-service-module1</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
</project>
==================== MODULE 2 =========================
<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>
<parent>
<groupId>com.blah.test</groupId>
<artifactId>blah-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>blah-service-module2</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
</project>
========== MODULE 3: the one which deploys all three with cargo =========================
<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>
<parent>
<groupId>com.blah.test</groupId>
<artifactId>blah-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>blah-service-module3</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module1</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module2</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.6</version>
<configuration>
<container>
<containerId>jetty6x</containerId>
<type>embedded</type>
</container>
<deployables>
<deployable>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module1</artifactId>
<type>war</type>
<properties>
<context>api/blah/module1</context>
</properties>
</deployable>
<deployable>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module2</artifactId>
<type>war</type>
<properties>
<context>api/blah/module2</context>
</properties>
</deployable>
<deployable>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module3</artifactId>
<type>war</type>
<properties>
<context>api/blah/module3</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
</project>
以下是一个例子:
<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>
org.codehaus.cargo
cargo-maven2-plugin
1
tomcat6x
C:\tools\apache-tomcat-6.0.26
8082
“-Xdebug”“-Xrunjdwp:transport=dt_socket,地址=4646,服务器=y,挂起=n”
com.acme
mywebapp
战争
乌头文字
更新:
(…)它给出的构建错误如下
工件[com.shc.obu.ca.osol:www-webapp-1.2.0:war]不是项目的依赖项。我也尝试将“www-webapp”和“www”作为工件id,但错误仍然是一样的
我忘了这一点,但看起来Cargo需要一个可部署的
作为Cargo启动项目的依赖项
当我向依赖项标记添加相同的内容时,它会产生如下的循环引用错误:“reactor中的项目包含一个循环引用”
这是正常的。工件不能是给定项目的子模块和依赖项,也不能是循环依赖项(您需要依赖项来构建模块,这是依赖项、鸡和蛋的问题)
我的建议是将cargo配置移动到
www
模块,或者为您的功能测试创建一个专用模块(这通常是我所做的),并将www
声明为此模块的依赖项。以下是如何使用cargo进行多模块部署的示例。它有一个父模块和三个模块,其中一个模块使用cargo完成所有三个模块的部署。您可以从第三个模块运行mvn cargo:run
,以部署所有模块
==================== PARENT 1 =========================
<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.blah.test</groupId>
<artifactId>blah-service</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>blah-service-module1</module>
<module>blah-service-module2</module>
<module>blah-service-module3</module>
</modules>
</project>
==================== MODULE 1 =========================
<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>
<parent>
<groupId>com.blah.test</groupId>
<artifactId>blah-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>blah-service-module1</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
</project>
==================== MODULE 2 =========================
<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>
<parent>
<groupId>com.blah.test</groupId>
<artifactId>blah-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>blah-service-module2</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
</project>
========== MODULE 3: the one which deploys all three with cargo =========================
<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>
<parent>
<groupId>com.blah.test</groupId>
<artifactId>blah-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>blah-service-module3</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module1</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module2</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.6</version>
<configuration>
<container>
<containerId>jetty6x</containerId>
<type>embedded</type>
</container>
<deployables>
<deployable>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module1</artifactId>
<type>war</type>
<properties>
<context>api/blah/module1</context>
</properties>
</deployable>
<deployable>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module2</artifactId>
<type>war</type>
<properties>
<context>api/blah/module2</context>
</properties>
</deployable>
<deployable>
<groupId>com.blah.test</groupId>
<artifactId>blah-service-module3</artifactId>
<type>war</type>
<properties>
<context>api/blah/module3</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>
</project>
===============================父级1=========================
4.0.0
com.blah.test
无聊的服务
聚甲醛
1.0-快照
blah-service-module1
blah-service-module2
blah-service-module3
============================模块1=========================
4.0.0
com.blah.test
无聊的服务
1.0-快照
blah-service-module1
战争
1.0-快照
============================模块2=========================
4.0.0
com.blah.test
无聊的服务
1.0-快照
废话-