как упаковать dojo для инструментов javascript maven?

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


person Árpád Magosányi    schedule 17.06.2013    source источник


Ответы (1)


Вы действительно должны использовать архетип? Я использую Dojo, jQuery и довольно много других библиотек JS в своем проекте и строю все это с помощью maven. Я кратко написал об этом в своем блоге здесь. Может быть, если вы разобьете проблемы, которые у вас есть, на более мелкие части, вам будет легче помочь.

person Bharadwaj    schedule 21.11.2013