如何使用tomcat运行maven war依赖:运行?

时间:2013-03-24 05:47:37

标签: maven tomcat plugins

我正在使用maven来完成我目前的项目。现在,我有战争依赖​​:

<dependency>
   <groupId>org.dojotoolkit</groupId>
   <artifactId>dojo-war</artifactId>
   <version>1.8.1</version>
   <type>war</type>
   <scope>runtime</scope>
</dependency>

我制作战争神器时没有任何问题。为此,我添加了这个插件:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.1.1</version>
        <configuration>
            <overlays>
                <overlay>
                    <groupId>org.dojotoolkit</groupId>
                    <artifactId>dojo-war</artifactId>
                    <targetPath>js/dojo-1.8.1</targetPath>
                    <excludes>
                        <exclude>WEB-INF/**</exclude>
                        <exclude>META-INF/**</exclude>
                    </excludes>
                </overlay>
            </overlays>
        </configuration>
    </plugin>

但是,当我运行以下mvn命令mvn tomcat7:run时,我看不到任何javascript资源。看起来没有添加战争依赖。

有人可以帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

欢迎来到Stack Overflow Emelendez。

你应该阅读这篇文章:http://webtide.intalio.com/2008/07/dojo-toolkit-maven-repository/

事实上,dojo-war依赖项允许您向源添加一些文件,但是您必须指定一些额外的操作以将其包含在最终的战争中。

Maven中的依赖关系只能使用您尝试编译的语言(这不是很精确,但这就足够了)。如果要添加zip / war / targz中包含的其他资源(文件,图像,javascript),则必须明确地提取它们。这就是我之前提供的链接中提到的内容:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack dojo</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>org.dojotoolkit</groupId>
                        <artifactId>dojo</artifactId>
                        <version>${project.version}</version>
                        <type>zip</type>
                    </artifactItem>
                </artifactItems>
                <outputDirectory>${project.build.directory}/dojo</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

(小心,我不确定这个配置是否准确,根据你的pom.xml,你的依赖似乎是dojo-war,而不是按照doc所说的dojo)

这会将dojo libs提取到输出目录中,然后进入你的战争。