我正在寻找用 java/javascript 编写的 RIA 的最佳打包方法,并在 javascript 部分苦苦挣扎。我在http://mojo.codehaus.org/javascript-maven-tools/javascript-ria-archetype/index.html找到了 JS RIA maven 原型 但是我的应用程序使用 dojo 而不是 jquery。问题是如何打包 dojo 以使其作为依赖项可用?我正在尝试这个:
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 看到的目录结构相匹配
添加对此的依赖和一些对 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>
在作为 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”引入所需的依赖项。有任何想法吗?