javascript - 如何为 javascript maven 工具打包 dojo?

标签 javascript maven dojo js-amd

我正在为用 java/javascript 编写的 RIA 寻找最好的打包方法,并且在 javascript 部分苦苦挣扎。 我在 http://mojo.codehaus.org/javascript-maven-tools/javascript-ria-archetype/index.html 找到了 JS RIA maven 原型(prototype) 但是我的应用程序使用 dojo 而不是 jquery。问题是如何打包 dojo 以使其作为依赖项可用? 我正在尝试这个:

  1. mvn install:install-file -DgroupId=org.dojotoolkit -DartifactId=dojo -Dversion=dojo-1.9.0 -Dpackaging=zip -Dfile=/home/mag/.m2/repository/org/dojotoolkit/dojo/1.9.0/dojo-1.9.0.zip -DgeneratePom -DcreateChecksum

    版本号很奇怪,因为我试图将 target 中的目录结构与我在 jquery 中看到的目录结构相匹配

  2. 为此添加依赖项并对 pom.xml 进行一些解包:

    <!--project/dependencies -->
                <dependency>
                    <groupId>org.dojotoolkit</groupId>
                    <artifactId>dojo</artifactId>
                    <version>dojo-1.9.0</version>
                    <type>zip</type>
                </dependency>
    
    <!--project/build/plugins -->
                    <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-dependency-plugin</artifactId>
                      <executions>
                        <execution>
                          <id>unpackDojo</id>
                          <phase>generate-sources</phase>
                          <goals>
                            <goal>unpack</goal>
                          </goals>
                          <configuration>
                            <artifactItems>
                              <artifactItem>
                                <groupId>org.dojotoolkit</groupId>
                                <artifactId>dojo</artifactId>
                                <classifier>sources</classifier>
                                <version>${dojo.version}</version>
                                <type>zip</type>
                                <outputDirectory>target/classes/js/org/dojotoolkit/
                                </outputDirectory>
                              </artifactItem>
                            </artifactItems>
                          </configuration>
                        </execution>
                      </executions>
                    </plugin>
    
  3. 将“dojo/query”作为 AMD 插入 javascript 源代码中:

    + define( ["jquery","dojo/query"], function($,query) {
    - define( ["jquery"], function($) {
    

    在src/main/js/HelloWorld/HelloWorldController.js的开头

目标现在看起来像这样:

    target/classes/js/org/dojotoolkit/dojo-1.9.0/dojo-dojo-1.9.0/query.js
    target/classes/js/org/codehaus/mojo/jquery-amd/1.7.1-alpha-1/jquery-amd-1.7.1-alpha-1.js

我明白了:

[错误] 未找到依赖项:文件中的 dojo/query:[...]/src/main/js/HelloWorld/HelloWorldController.js

我不知道 AMDing“jquery”如何导致找到 target/classes/js/org/codehaus/mojo/jquery-amd/1.7.1-alpha-1/jquery-amd-1.7.1-alpha- 1.js 在对我的 ~/.m2 和目标目录中的任何提示进行广泛研究之后。 因此,我不知道如何准备 dojo 来使“dojo/anything”引入所需的依赖项。 有什么想法吗?

最佳答案

你真的必须使用原型(prototype)吗?我在我的项目中使用 Dojo、jQuery 和许多其他 JS 库,并使用 maven 构建它们。我在我的博客上简要地写了关于它的文章 here .也许如果你把你遇到的问题分解成更小的部分,就会更容易提供帮助

关于javascript - 如何为 javascript maven 工具打包 dojo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17143185/

相关文章:

javascript - 如何从 angularjs 中的 $http 函数获取值

javascript - TS2304 : Cannot find name 'require'

javascript - ES6 导入/导出是否需要 ".js"扩展名?

javascript - 使用 Dojo 的 dijit DropDownButton 时如何更改工具提示的位置?

javascript - Dojo Datagrid 总是显示过时的数据

javascript - 将图像拖放到 div 中会将其从前一个 div 中删除

java - 使用 Wildfly maven docker intellij 进行热部署/热交换类

java - 如何通过类名或jar名查找jar及其maven gav

java - 将 checkstyle/google_checks.xml 与 maven-checkstyle-plugin 一起使用时出错

css - 将CSS应用于dijit按钮