如何在spring mvc(1 war和1 jar)中集成两个项目

时间:2015-11-27 08:34:59

标签: java spring hibernate maven spring-mvc

用于项目的两个Spring mvc Web应用程序,其中一个作为Internet,一个作为Intranet。两者都使用很少的常见包和类。我想分离内部网部分并将其作为jar文件,然后使用Internet war文件进行部署。想法是在多个类似的项目中使用jar文件,其中可以重用Intranet部分。请建议如何继续这种方法。 谢谢

1 个答案:

答案 0 :(得分:0)

首先创建将包含jar包装的lib项目,互联网和内部网应用程序将重用此项目中的代码。

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>com.domain.foobar</groupId>
  <artifactId>foobar-lib</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

</project>

然后生成互联网portlet(使用war包装),例如

mvn archetype:generate -DarchetypeGroupId = com.domain.foobar -DartifactId = foobar-internet -DarchetypeArtifactId = com.liferay.maven.archetypes:liferay-portlet-archetype -DarchetypeVersion = 6.2.10.15

和互联网项目的pom.xml添加

<dependency>
    <groupId>com.domain.foobar</groupId>
    <artifactId>foobar-lib</artifactId>
    <version>1.0.0</version>
</dependency>

对Intranet portlet执行相同的操作

mvn archetype:generate -DarchetypeGroupId = com.domain.foobar -DartifactId = foobar-intranet -DarchetypeArtifactId = com.liferay.maven.archetypes:liferay-portlet-archetype -DarchetypeVersion = 6.2.10.15

和互联网项目的pom.xml添加

<dependency>
    <groupId>com.domain.foobar</groupId>
    <artifactId>foobar-lib</artifactId>
    <version>1.0.0</version>
</dependency>

现在互联网和内联网(战争包装)项目都在lib(jar包装)项目中看到代码。

所以架构是

  • Internet portlet(Spring MVC代码在这里),WAR包装
  • Intranet portlet(Spring MVC代码在这里),WAR包装
  • 共享库(核心代码在这里),JAR打包

我希望我帮助你,因为你的问题不够清楚。