我正在使用maven2进行依赖关系管理。我有一个项目,包含一些Java文件和一些jsp文件,另一个项目,一个Web项目,依赖于第一个项目。如何从Web项目访问jsp文件?
我可以看到jsp文件被添加到1-0-SNAPSHOT-sources.jar
而不是1-0-SNAPSHOT.jar
(在web项目pom.xml中作为依赖项添加)。
答案 0 :(得分:13)
我认为正确的Maven方法是将JSP文件放在/ src / main / webapp下的Web项目中。如果由于某种原因无法实现,您可以使用Maven Dependency Plugin将所需文件复制到您的webapp中。或者,如果你有一个WAR项目,你可以使用Overlay来复制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>
答案 1 :(得分:0)
该解决方案的问题在于,在使用Eclipse进行开发时,项目无法处理叠加层。因此,jsp无法访问。
答案 2 :(得分:0)
我想将一个依赖JAR项目的文件放到我的WEB项目中。
我已经这样做了所以我不仅可以在打包WAR时使用文件,还可以在运行maven servlet容器插件时(例如jetty:run或tomcat:run)获取文件。
所以这对我有用:
<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>
希望能帮助任何寻找类似解决方案的人