【问题标题】:how to package dojo for javascript maven tools?如何为 javascript maven 工具打包 dojo?
【发布时间】:2013-06-17 08:21:30
【问题描述】:

我正在寻找用 java/javascript 编写的 RIA 的最佳打包方法,并在 javascript 部分苦苦挣扎。 我在http://mojo.codehaus.org/javascript-maven-tools/javascript-ria-archetype/index.html 找到了 JS RIA maven 原型 但是我的应用程序使用 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

    版本号很奇怪,因为我试图将目标中的目录结构与我在 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. 在 JavaScript 源代码中插入“dojo/query”作为 AMD:

    + 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”引入所需的依赖项。 有什么想法吗?

【问题讨论】:

    标签: javascript maven dojo js-amd


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-20
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      相关资源
      最近更新 更多