鍍金池/ 問答/Java/ 頁面放到maven子模塊下,如何訪問

頁面放到maven子模塊下,如何訪問

一個maven項目用戶和管理員是兩套頁面分別放到了兩個maven子模塊中,然后用另一個子模塊做war,用哪一套頁面就依賴哪個項目,我想問,是如何能訪問到子模塊的頁面的

回答
編輯回答
呆萌傻

子模塊可以打成jar包,把頁面等靜態(tài)資源放到META-INF/resources目錄下. 需要注意的這是servlet 3.0標(biāo)準(zhǔn)的一項內(nèi)容. 你的應(yīng)用也要放到支持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>

相應(yīng)的在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的修飾符, 這個才是你要發(fā)布的jar, 別的模塊引用時,也要把修飾符帶上

 <dependency>
        <groupId>com.example</groupId>
        <artifactId>myplugin</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <classifier>bin</classifier>
</dependency>
2018年3月30日 09:39