我有一个开发的应用程序,我只是试图使构建过程容易。父母的POM文件如下所示:如何部署一个特定的子项目与货物:开始使用maven
<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货物:启动”,Tomcat实例运行良好,但没有孩子的应用程序得到部署。有没有办法让我的第一个子应用程序(www)(它生成一个名为www-webapp-1.2.0.war的war文件)自动部署?
更新:感谢帕斯卡。我试图修改构建标签如下:
<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,但错误仍然保持不变。
当我添加相同的产生依赖性的标签,它提供了某种如下循环引用错误的: “在反应器中的项目包含一个循环引用”
帕斯卡尔嗨, 能否请你帮我带两个其中U建议使用上面提供的POM代码的方法的样本。我尝试了第一种方法,然后得到一些错误,比如插件标签不能识别配置文件等,不知道如何实现第二种方法。 谢谢, Neeraj – Neeraj 2010-07-06 15:26:28
@Neeraj:这表明POM无效。在配置文件中,插件应在' ... '中声明。 –
2010-07-06 17:08:36
POM是有效的,我可以将整个构建标签移动到www profile中,但结果是一样的。我尝试了'mvn cargo:start'和'mvn -Pwww货物:开始',但我的应用程序www-webapp-1.2.0.war仍未部署或启动。 但是,如果我尝试运行'mvn -Pwww cargo:deploy'命令(在配置文件外部或内部使用构建标记),我的'www'war文件(www-webapp-1.2.0.war)确实会将副本发送到webapps货物下的文件夹。 – Neeraj 2010-07-07 11:35:17