2

我正在为我当前的项目使用 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 资源。看起来没有添加战争依赖。

有人可以帮我吗?

提前致谢。

4

1 回答 1

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,而不是按照文档所说的 dojo)

这会将 dojo 库提取到输出目录中,然后到您的战争中。

于 2013-03-25T13:03:57.417 回答