Упаковка файлов Javascript на войне? - PullRequest
5 голосов
/ 08 октября 2010

Я занимаюсь разработкой Java-проекта на основе сервлетов, который должен быть упакован как война с использованием Maven. Есть ли способ включить файлы JavaScript (JS) вместе с этим проектом (они должны быть доступны по некоторой ссылке при загрузке проекта на сервер Tomcat).

Я осмотрелся, но не нашел никаких рабочих решений.

Ответы [ 3 ]

12 голосов
/ 08 октября 2010

Возможно, лучшим решением будет придерживаться соглашения Maven, которое определяет, что корневым каталогом вашего веб-приложения является src/main/webapp.

Так что, если вы поместите все свои файлы Javascript в src/main/webapp/javascript (или src/main/webapp/js), они будут интегрированы в ваш окончательный военный пакет.

В плагине Maven WAR они дают некоторые описания (см., Например, здесь ) о содержимом каталогов. Например:

 |-- pom.xml
 `-- src
     `-- main
         |-- java
         |   `-- com
         |       `-- example
         |           `-- projects
         |               `-- SampleAction.java
         |-- resources
         |   `-- images
         |       `-- sampleimage.jpg
         `-- webapp
             |-- WEB-INF
             |   `-- web.xml
             |-- index.jsp
             `-- jsp
                 `-- websource.jsp

Как видите, вы можете поместить ресурсы в каталог webapp/xxx, например, в файл jsp.

Как указано в cuh, вы также можете настроить плагин Maven WAR, если ваша структура каталогов отличается.

3 голосов
/ 08 октября 2010

Вы можете использовать maven-war-plugin и настроить его примерно так:

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-war-plugin</artifactId>
       <version>2.0.2</version>
       <configuration>
           <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
           <webResources>
                <resource>
                    <directory>your/path/to/js</directory>
                    <targetPath>js</targetPath>
                </resource>
           </webResources>
       </configuration>
</plugin>

См. здесь .

edit : Вы, вероятно, не хотите включать js в папку classes.

1 голос
/ 08 октября 2010

Поместите их в каталоги под src / main / webapp.То есть, если вы сгенерировали его с использованием архетипа maven-archetype-webapp.

В моем текущем приложении они находятся в каталоге src / main / webapp / javascript, а доступ к ним осуществляется в JSP следующим образом:

<script type="text/javascript" src="javascript/jquery-1.4.2.min.js"></script>

(для файлов jsp в src / main / webapp то есть)

...