Java 如何使用Maven消除连接

Java 如何使用Maven消除连接,java,jsp,maven,junction,Java,Jsp,Maven,Junction,我有几个web项目共享大约95%的UI。目前我已经在我的windows机器上设置了连接,所以当我在jsp文件中进行更改时,所有项目都会立即得到相同的更新。所以我不必更新每个文件 这种方法很有效,但很笨拙,因为我必须建立一个痛苦且容易断裂的连接点 如何使用maven解决此问题?我可以将整个UI(jsp)打包到.war中并将其包含在每个项目中吗?这样行吗?或者还有别的办法吗 谢谢maven war插件将允许您创建一个包含所有web文件的war文件,并将其用作依赖项目的一个插件 假设我在这样的项目中有

我有几个web项目共享大约95%的UI。目前我已经在我的windows机器上设置了连接,所以当我在jsp文件中进行更改时,所有项目都会立即得到相同的更新。所以我不必更新每个文件

这种方法很有效,但很笨拙,因为我必须建立一个痛苦且容易断裂的连接点

如何使用maven解决此问题?我可以将整个UI(jsp)打包到.war中并将其包含在每个项目中吗?这样行吗?或者还有别的办法吗


谢谢

maven war插件将允许您创建一个包含所有web文件的war文件,并将其用作依赖项目的一个插件

假设我在这样的项目中有一些ui代码

src
 |-main
    |-webapp
        |-jsp
        |  |-thing1.jsp
        |  |-thing2.jsp
        |-WEB-INF
           |-web.xml
其pom.xml如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>foo.bar.baz</groupId>
  <artifactId>big-messy-ui</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>foo.bar.baz</groupId>
  <artifactId>some-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <dependencies>
    <!-- include ui as an overlay -->
    <dependency>
      <groupId>foo.bar.baz</groupId>
      <artifactId>big-messy-ui</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <type>war</type>
    </dependency>
  </dependencies>

  <build>
    <finalName>SomeApp</finalName>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

是的,这似乎是一种正确的做法:)
jsp
 |-thing1.jsp // from overlay
 |-thing2.jsp // from overlay
 |-plus anything from SomeApp's src/main/webapp/jsp
META-INF
 |-MANIFEST.MF
WEB-INF
 |-classes
 |   |-.class files from SomeApps's src/main/java
 |-web.xml (from SomeApp, the web.xml from the overlay is dropped)