当前位置:首页 » 网页前端 » mavenweb多个模块
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mavenweb多个模块

发布时间: 2022-12-20 13:46:26

⑴ maven构建多模块怎么访问主页面

在eclipse下构建maven项目,该项目由多个子模块组成。
1.创建一个父项目
NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面

,什么也不做,直接下一步到Select an Archetype界面。

在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面

,在group id 和artifact id中输入你的group和artifact名称。我用的分别是A和B,选择完成。这时会在eclipse中生成一个项目,项目名是B。
此时B的pom文件如下所示:

[html] view plain
<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>A</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<distributionManagement>
<site>
<id>website</id>
<url>scp://webhost.company.com/www/website</url>
</site>
</distributionManagement>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

2.创建子项目
2.1 将项目B中的src文件删除(可有可无,主要看个人需要)
2.2 选中项目B,点击右键,选择NEW -->project-->maven-->maven Mole,点击下一步,在出现的界面中输入子模块的名称C,点击下一步,出现Select an Archetype界面。这时选择maven-Archetype-site-quickStart或者maven-Archetype-webapp(构建web层时使用),然后选择完成,即生成子项目C。
这时B的pom文件就变成了这样(和上面的比只是多了个moles标签):

[html] view plain
<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>A</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<distributionManagement>
<site>
<id>website</id>
<url>scp://webhost.company.com/www/website</url>
</site>
</distributionManagement>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<moles>
<mole>C</mole>
</moles>
</project>

这时构建B的子项目完成,构建其他的子项目和此类似。
在构建第二个子项目D时可能在B中没有及时出现,这时只要把B项目刷新下就可以了。
ps:
其实在构建多模块的项目时,在选择父项目的类型时是可以选择任意的类型。选择项目类型的界面如下:

对于这些非常规类型的项目,如果想要成为父项目,需要做如下一些改动:
1.将pom.xml文件中的<packaging>jar</packaging>改为<packaging>pom</packaging>,若不换为pom则在打包的时候父项目会产生一个target文件;如果没有<packaging>pom</packaging>的可以在<version>0.0.1-SNAPSHOT</version>后面添加上这句话即可。
2.删除除pom.xml外的所有文件,其中JRE System Library是不能直接删除的,需要选择中,并单击右键Bulid Path-->Remove from bilud path即可移除。
这时的父项目就显得很干净整洁了。

其实在普通的项目上是不允许构建子模块的,能否在一个项目下创建子模块,主要取决于是否有<packaging>pom</packaging>这个配置。如果有这个配置则任何项目都可以创建子模块,硬要这样创建的话整个项目会变的不伦不类。看来maven在判断一个项目是否可以创建子模块其实是取决于这个配置的。

⑵ 如何创建带子模块的Maven Web工程

当在Eclipse中创建Maven带子模块的Web工程时,对于新手经常会遇到无法部署Web站点的问题。下面就带着大家走一遍带子工程的Maven站点,顺便讲一下如何解决这个问题。
一、创建父工程
1、 创建Maven工程
首先,在Eclipse中新建一个Maven Project:
单击“Next”,直到出现如下界面:
在这一步中,选中上面的“Create a simple project”复选框,然后单击“Next”:
在上图中,Group Id为组Id,也就是所有子模块都公用的Id;Artifact Id是模块Id,每个子模块都有自己独立的Artifact Id;Packaging一定要选择“pom”,否则后面无法在它下面创建子模块。
单击“Finish”完成父工程创建。创建完毕后的工程如下图所示:
二、创建web子模块
接下来创建子模块。
1、 创建web工程子模块
首先创建web工程子模块,在parent工程上单击右键,选择“New/Other”,打开如下所示窗口:
在该窗口中选择“Maven Mole”,单击“Next”:
在“Mole Name”中输入“website”,单击“Next”:
在该窗口的模板列表中选择“maven-archetype-webapp”,单击“Next”:
在该窗口中可根据需要修改version和Package(最好将Package改为“GroupId + Artifact Id”的格式,便于以后识别和管理),单击“Finish”即可完成子模块创建,如下图所示:
2、 修改站点配置信息
对于新创建的站点,需要修改一下配合信息。打开website的Properties窗口,在“Java Build Path”下的Libraries选项卡中将J2SE的引用删除,添加J2EE的引用,如下图所示:
并将Java Compilier中的Java版本改为1.7:
然后切换到“Project Facets”节点,如下图所示:
单击右侧的“Convert to faceted form…”,打开如下图所示窗口:
在上图中,选中“Project Facet”列表中的“Dynamic Web Mole”,先后单击“Apply”按钮和“OK”按钮,完成工程类型转换。
接下来创建组件包子模块。
三、创建组件包子模块
1、 创建组件包子模块
同样是在parent工程上单击右键,新建Maven Mole,并在新弹出的窗口中输入组件子模块的名称,如“component”,然后一直单击next直到子模块创建完毕。新创建的component子模块结构如下图所示:
2、 修改子模块参数
与创建web子模块类似,需要将component引用的Java版本改为JDK1.7。
3、 创建package
在component子模块下创建名称为“com.unitname.test.math”的package。
4、 创建类
在新创建的“com.unitname.test.math”package下新建名称为“CCalculate”的class,并在里面编写方法,如下图所示:
四、在web站点中调用组件
1、 引用组件包
打开website工程下的pom.xml,在里面添加对component子模块的引用,如下图所示:
在上图中,红框圈住的部分即为需要增加的内容。其中,groupId和version节点中可以写被引用的工程的对应内容,如果与本模块相同,也可以像上图中所示的使用“${project.groupId}”和“${project.version}”的方式。
2、 编写servlet调用组件
在website模块中创建一个名为“com.unitname.test.service”的package,并在下面新建一个名为matchservice的servlet,代码如下图所示:
此时代码中会提示找不到javax.servlet包,可通过在站点中增加对servlet-api组件的引用:
也可通过在web站点的引用中添加对Server Runtime的引用的方式解决:
五、发布站点
1、 发布站点
将站点部署到tomcat中,并启动。
2、 访问servlet
在浏览器中输入上面创建的servlet地址http://localhost:8080/website/mathservice?a=2&b=3,此时页面出现如下错误:
Tomcat中也提示相同的错误:
此时还需要做一步操作:添加Deployment配置。
3、 添加DeploymentAssembly配置
在web子模块上单击右键,选择“Properties”,在打开的窗口中选择“Deployment Assembly”,如下图所示:
在上图中,打击右侧的“Add”按钮,打开如下图所示窗口:
在上图所示窗口中选择“Java Build Path Entries”,单击“Next”:
在上图中选择“Maven Dependencies”,单击“Finish”完成添加。
然后接着添加对Project的引用。在中选择“Project”,单击“Next”,打开如下图所示窗口:
在上图选择要引用的工程component,单击“Finish”完成添加。
重启Tomcat,再次访问该servlet,出现如下所示的正常结果

⑶ Maven 多模块web项目如何集成到tomcat里面去 然后怎么运行

怎么解决的呢 ?能否一起探讨下 ?

⑷ Maven多Web模块怎么调试

tomcat好像只有部署的形式,不能以容器直接启动?反正搞了半天 断点就是打不上

给你jetty的配置

<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<!-- 热部署 -->
<scanIntervalSeconds>0</scanIntervalSeconds>
<httpConnector>
<port>9090</port>
</httpConnector>
<!-- <webAppConfig> <contextPath>/${project.artifactId}</contextPath>
</webAppConfig> -->
</configuration>
</plugin>
关于版本 ${jetty.version}

⑸ 多模块的maven项目(只有一个是web项目),如何转成gradle项目,麻烦大家指点一下。

你可以以filesystem(文件系统)的形式导入maven项目,然后你要编写哪个子项目,再单独的把那个子项目import 你看我的openweb和openweb-core。