2

我正在寻找用 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. 在作为 AMD 的 javascript 源代码中插入“dojo/query”:

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

4

1 回答 1

0

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

于 2013-11-21T14:34:18.700 回答