maven, файлы jsp в зависимости

Я использую maven2 для управления зависимостями. У меня есть один проект, содержащий несколько файлов Java и несколько файлов jsp, и другой проект, веб-проект, который зависит от первого проекта. Как получить доступ к файлам jsp из веб-проекта?

Я вижу, что файлы jsp добавляются в 1-0-SNAPSHOT-sources.jar, а не в 1-0-SNAPSHOT.jar (который добавляется как зависимость в веб-проектах pom.xml).


person vpalle    schedule 22.04.2009    source источник
comment
Как именно второй проект зависит от jsps? Что он делает с ними? Включить их? Разобрать их? Что-то другое?   -  person kazanaki    schedule 22.04.2009


Ответы (3)


Я думаю, что правильным способом Maven для этого было бы поместить файлы JSP в ваш веб-проект в /src/main/webapp. Если это по какой-либо причине невозможно, вы можете использовать плагин зависимостей Maven. чтобы скопировать необходимые файлы в ваше веб-приложение. Или, если у вас все равно есть проект WAR, вы можете использовать оверлей для копирования JSP-файлов. Второй вариант (который я бы рекомендовал) будет выглядеть примерно так:

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <overlays>
              <overlay>
                <groupId>myGroupId</groupId>
                <artifactId>myArtifactId</artifactId>
                <type>jar</type>
                <includes>
                  <include>**/*.jsp</include>
                </includes>
                <targetPath>WEB-INF/pages</targetPath>
              </overlay>
            </overlays>
          </configuration>
        </plugin>
      </plugins>
    </build>
person Thomas Marti    schedule 05.05.2009
comment
Спасибо за твой ответ. Оверлей WAR был правильным решением для проекта. - person vpalle; 18.05.2009

Проблема с этим решением заключается в том, что при разработке с помощью Eclipse проект не обрабатывает наложение. Итак, jsp недоступен.

person Community    schedule 22.09.2009

Я хотел, чтобы некоторые файлы из JAR-проекта зависимостей были включены в мой веб-проект.

Я сделал это, чтобы иметь файлы не только при упаковке WAR, но и при запуске плагина контейнера сервлета maven (например, причала: запустить или tomcat: запустить).

Итак, вот что сработало для меня:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.1</version>
    <executions>
        <execution>
            <id>copy-files-to-webapp-directory</id>
            <phase>compile</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>com.my.project</groupId>
                        <artifactId>my-amazing-project</artifactId>
                        <type>jar</type>
                        <overWrite>true</overWrite>
                        <outputDirectory>src/main/webapp</outputDirectory>
                        <includes>**/*.jsp, **/*.css, **/*.png</includes>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

Надеюсь, что это поможет любому, кто ищет подобное решение

person Gustavo Matias    schedule 31.07.2014