Я ищу лучший подход к упаковке для RIA, написанного на java/javascript, и борюсь с частью javascript. Я нашел архетип JS RIA maven по адресу http://mojo.codehaus.org/javascript-maven-tools/javascript-ria-archetype/index.html Однако мое приложение использует 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
номер версии такой странный, потому что я пытался сопоставить структуру каталогов в target с той, которую я вижу для 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>
вставка «dojo/query» в источник javascript как 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 и целевых каталогах. Следовательно, я понятия не имею, как подготовить додзё, чтобы «додзё/что угодно» вносило необходимую зависимость. Любые идеи?