[英]How do I copy a file to tomcat webapp folder using maven?
I want to copy a resource file from src/main/resources to Cargo
Tomcat
in /target/tomcat6x/container/webapps using Maven
. 我想使用Maven
将资源文件从src / main / resources复制到/ target / tomcat6x / container / webapps中的Cargo
Tomcat
。
I tried using maven-resources-plugin
but am not having any success. 我尝试使用maven-resources-plugin
但没有取得任何成功。
I tried this: 我试过这个:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.5</version>
<configuration>
<wait>false</wait>
<container>
<containerId>tomcat6x</containerId>
<zipUrlInstaller>
<url>
http://mirrors.enquira.co.uk/apache/tomcat/tomcat-6/v6.0.30/bin/apache-tomcat-6.0.30.zip
</url>
<installDir>${installDir}</installDir>
</zipUrlInstaller>
<output>
${project.build.directory}/tomcat6x.log
</output>
<log>${project.build.directory}/cargo.log</log>
</container>
<configuration>
<files>
<copy>
<file>src/main/resources/datasource.properties</file>
<!--tofile>${project.build.directory}/tomcat6x/container/webapps/datasource.properties</tofile-->
<todir>${project.build.directory}/tomcat6x/container/webapps</todir>
</copy>
</files>
<home>
${project.build.directory}/tomcat6x/container
</home>
<properties>
<cargo.logging>high</cargo.logging>
<cargo.servlet.port>8081</cargo.servlet.port>
</properties>
</configuration>
</configuration>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>configure</goal>
<goal>start</goal>
<goal>deploy</goal>
</goals>
<configuration>
<deployer>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<pingURL>http://localhost:8081/charmweb-0.0.1-SNAPSHOT/</pingURL>
<pingTimeout>180000</pingTimeout>
<properties>
<context>charmweb-0.0.1-SNAPSHOT</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>
... but the file is not copying before the server starts and the application gets pinged. ...但是在服务器启动和应用程序被ping之前文件没有复制。
Does anyone know how to use it properly? 有谁知道如何正确使用它?
You can use the maven-antrun-plugin for this and execute an ant copy task: 您可以使用maven-antrun-plugin执行此操作并执行ant复制任务:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<copy file="src/main/resources/fileToCopy"
tofile="${project.build.directory}/tomcat6x/container/webapps/fileToCopy" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
ok here is the answer.: 好的,这里的答案是:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.5</version>
<configuration>
<wait>false</wait>
<container>
<containerId>tomcat6x</containerId>
<zipUrlInstaller>
<url>
http://mirrors.enquira.co.uk/apache/tomcat/tomcat-6/v6.0.30/bin/apache-tomcat-6.0.30.zip
</url>
<installDir>${installDir}</installDir>
</zipUrlInstaller>
<output>
${project.build.directory}/tomcat6x.log
</output>
<log>${project.build.directory}/cargo.log</log>
</container>
<configuration>
<home>
${project.build.directory}/tomcat6x/container
</home>
<properties>
<cargo.logging>high</cargo.logging>
<cargo.servlet.port>8081</cargo.servlet.port>
</properties>
<files>
<copy>
<file>${project.basedir}/src/main/resources/datasource.properties</file>
<todir>webapps</todir>
<configfile>true</configfile>
<overwrite>true</overwrite>
</copy>
</files>
</configuration>
</configuration>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.