页面放到maven子模块下,如何访问

新手上路,请多包涵

一个maven项目用户和管理员是两套页面分别放到了两个maven子模块中,然后用另一个子模块做war,用哪一套页面就依赖哪个项目,我想问,是如何能访问到子模块的页面的

阅读 3.6k
1 个回答

子模块可以打成jar包,把页面等静态资源放到META-INF/resources目录下. 需要注意的这是servlet 3.0标准的一项内容. 你的应用也要放到支持servlet 3.0的容器才行(如tomcat 7以上的版本).

具体做法可以用maven的assembly插件.

参考我的的assebly.xml文件:

<assembly>
    <id>bin</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>/</outputDirectory>
            <excludes>
                <exclude>**</exclude>
            </excludes>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>target/classes</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>**/*.class</include>
            </includes>
            <excludes>
                <exclude>**/DefaultController.class</exclude>
            </excludes>
        </fileSet>
        <fileSet>
            <directory>WebContent</directory>
            <outputDirectory>META-INF/resources</outputDirectory>
            <includes>
                <include>/WEB-INF/jsp/**</include>
            </includes>
        </fileSet>    
         
        <fileSet>
            <directory>WebContent</directory>
            <outputDirectory>META-INF/resources</outputDirectory>
            <includes>
                <include>js/**</include>
                <include>plugins/**</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

相应的在pom.xml

...
<plugins>
  <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
...
</plugins>

打好包的jar会多一个bin的修饰符, 这个才是你要发布的jar, 别的模块引用时,也要把修饰符带上

 <dependency>
        <groupId>com.example</groupId>
        <artifactId>myplugin</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <classifier>bin</classifier>
</dependency>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题