Arch-05-03- Eclipse Web 项目引入 Maven

本文介绍如何在已有的Eclipse项目中引入Maven进行管理,包括调整项目结构、配置pom.xml文件、添加依赖及插件,并实现通过Maven部署到Tomcat服务器。

虽然到处都是 maven 的影子,但由于我一直不太喜欢编写脚本,直到现在公司非用不可才学习一下下。

习惯了 eclipse 中的 web 开发环境和效率,本项目是已经在 eclipse 中运行成功的情况下,再加点 maven 的料后交差。

1. 在现有的项目中加入 maven

  (1) 已经装好了 Sonatype 的 maven 插件;

  (2) 由于 maven 的目录结构与eclipse 不同,一是自己调整成 maven 的样子,/src/main/java,/src/main/webapp,二是在pom.xml 中修改配置,为了不写脚本,我先调整了 eclipse 项目的目录结构。

  (3) 选中项目点右键,Maven - Enable Dependency Management,系统会创建必要的文件 pom.xml 及相关的配置文件

2. 打开 pom.xml 编辑配置

  (1)Overiew 中填入公司信息,项目信息

  (2)Dependencies 中填入依赖包,一个一个地加,由于我的包太多,直接放在 /web-inf/lib 下,懒得去加了(这只是试玩一下)

  (3)Plugins 中填入 tomcat,点击 add 后,填入 tomcat 过滤后只有一个 org.codehaus.mojo 的 tomcat-maven 插件,用最新版本好了。 tomcat 需要配置一下,直接编辑 pom.xml 文本。

(4)我的文本是酱紫的

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gohome</groupId>
  <artifactId>agency-simple</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>agency-simple Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>agency</finalName>
    <plugins>
    	<plugin>
    		<groupId>org.codehaus.mojo</groupId>
    		<artifactId>tomcat-maven-plugin</artifactId>
    		<version>1.1</version>
			<configuration>
                                <!--外部独立运行 tomcat, 这里发布到外部的 tomcat-->
				<url>http://localhost/manager</url>
                                <username>tomcat</username>  
                                <password>pass</password>  
                                <path>/</path>  
			</configuration>
    	</plugin>
    </plugins>
  </build>
</project>

 3. 运行

  (1) 如果是发布到外部运行的 tomcat,RunAs - Maven build... - tomcat:redeploy;

  (2) 如果想直接调用 tomcat 启动程序,RunAs - Maven build... - tomcat:run

4. 提交给 svn 交功课。

C:\Users\20182>mvn spring-boot:run -X Apache Maven 3.9.10 (5f519b97e944483d878815739f519b2eade0a91d) Maven home: D:\apache-maven-3.9.10-bin\apache-maven-3.9.10 Java version: 24.0.1, vendor: Oracle Corporation, runtime: D:\java Default locale: zh_CN, platform encoding: UTF-8 OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows" WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.google.inject.internal.aop.HiddenClassDefiner (file:/D:/apache-maven-3.9.10-bin/apache-maven-3.9.10/lib/guice-5.1.0-classes.jar) WARNING: Please consider reporting this to the maintainers of class com.google.inject.internal.aop.HiddenClassDefiner WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release [DEBUG] Created new class realm maven.api [DEBUG] Importing foreign packages into class realm maven.api [DEBUG] Imported: javax.annotation.* < plexus.core [DEBUG] Imported: javax.annotation.security.* < plexus.core [DEBUG] Imported: javax.inject.* < plexus.core [DEBUG] Imported: org.apache.maven.* < plexus.core [DEBUG] Imported: org.apache.maven.artifact < plexus.core [DEBUG] Imported: org.apache.maven.classrealm < plexus.core [DEBUG] Imported: org.apache.maven.cli < plexus.core [DEBUG] Imported: org.apache.maven.configuration < plexus.core [DEBUG] Imported: org.apache.maven.exception < plexus.core [DEBUG] Imported: org.apache.maven.execution < plexus.core [DEBUG] Imported: org.apache.maven.execution.scope < plexus.core [DEBUG] Imported: org.apache.maven.graph < plexus.core [DEBUG] Imported: org.apache.maven.lifecycle < plexus.core [DEBUG] Imported: org.apache.maven.model < plexus.core [DEBUG] Imported: org.apache.maven.monitor < plexus.core [DEBUG] Imported: org.apache.maven.plugin < plexus.core [DEBUG] Imported: org.apache.maven.profiles < plexus.core [DEBUG] Imported: org.apache.maven.project < plexus.core [DEBUG] Imported: org.apache.maven.reporting < plexus.core [DEBUG] Imported: org.apache.maven.repository < plexus.core [DEBUG] Imported: org.apache.maven.rtinfo < plexus.core [DEBUG] Imported: org.apache.maven.settings < plexus.core [DEBUG] Imported: org.apache.maven.toolchain < plexus.core [DEBUG] Imported: org.apache.maven.usability < plexus.core [DEBUG] Imported: org.apache.maven.wagon.* < plexus.core [DEBUG] Imported: org.apache.maven.wagon.authentication < plexus.core [DEBUG] Imported: org.apache.maven.wagon.authorization < plexus.core [DEBUG] Imported: org.apache.maven.wagon.events < plexus.core [DEBUG] Imported: org.apache.maven.wagon.observers < plexus.core [DEBUG] Imported: org.apache.maven.wagon.proxy < plexus.core [DEBUG] Imported: org.apache.maven.wagon.repository < plexus.core [DEBUG] Imported: org.apache.maven.wagon.resource < plexus.core [DEBUG] Imported: org.codehaus.classworlds < plexus.core [DEBUG] Imported: org.codehaus.plexus.* < plexus.core [DEBUG] Imported: org.codehaus.plexus.classworlds < plexus.core [DEBUG] Imported: org.codehaus.plexus.component < plexus.core [DEBUG] Imported: org.codehaus.plexus.configuration < plexus.core [DEBUG] Imported: org.codehaus.plexus.container < plexus.core [DEBUG] Imported: org.codehaus.plexus.context < plexus.core [DEBUG] Imported: org.codehaus.plexus.lifecycle < plexus.core [DEBUG] Imported: org.codehaus.plexus.logging < plexus.core [DEBUG] Imported: org.codehaus.plexus.personality < plexus.core [DEBUG] Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core [DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < plexus.core [DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException < plexus.core [DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < plexus.core [DEBUG] Imported: org.eclipse.aether.* < plexus.core [DEBUG] Imported: org.eclipse.aether.artifact < plexus.core [DEBUG] Imported: org.eclipse.aether.collection < plexus.core [DEBUG] Imported: org.eclipse.aether.deployment < plexus.core [DEBUG] Imported: org.eclipse.aether.graph < plexus.core [DEBUG] Imported: org.eclipse.aether.impl < plexus.core [DEBUG] Imported: org.eclipse.aether.installation < plexus.core [DEBUG] Imported: org.eclipse.aether.internal.impl < plexus.core [DEBUG] Imported: org.eclipse.aether.metadata < plexus.core [DEBUG] Imported: org.eclipse.aether.repository < plexus.core [DEBUG] Imported: org.eclipse.aether.resolution < plexus.core [DEBUG] Imported: org.eclipse.aether.spi < plexus.core [DEBUG] Imported: org.eclipse.aether.transfer < plexus.core [DEBUG] Imported: org.eclipse.aether.util < plexus.core [DEBUG] Imported: org.eclipse.aether.version < plexus.core [DEBUG] Imported: org.fusesource.jansi.* < plexus.core [DEBUG] Imported: org.slf4j.* < plexus.core [DEBUG] Imported: org.slf4j.event.* < plexus.core [DEBUG] Imported: org.slf4j.helpers.* < plexus.core [DEBUG] Imported: org.slf4j.spi.* < plexus.core [DEBUG] Populating class realm maven.api [DEBUG] Created adapter factory; available factories [file-lock, rwlock-local, semaphore-local, noop]; available name mappers [discriminating, file-gav, file-hgav, file-static, gav, static] [INFO] Error stacktraces are turned on. [DEBUG] Message scheme: color [DEBUG] Message styles: debug info warning error success failure strong mojo project [DEBUG] Reading global settings from D:\apache-maven-3.9.10-bin\apache-maven-3.9.10\conf\settings.xml [DEBUG] Reading user settings from C:\Users\20182\.m2\settings.xml [WARNING] [WARNING] Some problems were encountered while building the effective settings [WARNING] expected START_TAG or END_TAG not TEXT (position: TEXT seen ...</activation>\n \u200b\n <p... @208:13) @ D:\apache-maven-3.9.10-bin\apache-maven-3.9.10\conf\settings.xml, line 208, column 13 [WARNING] [DEBUG] Reading global toolchains from D:\apache-maven-3.9.10-bin\apache-maven-3.9.10\conf\toolchains.xml [DEBUG] Reading user toolchains from C:\Users\20182\.m2\toolchains.xml [DEBUG] Using local repository at D:\apache-maven-3.9.10\repository [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for D:\apache-maven-3.9.10\repository [INFO] Scanning for projects... [DEBUG] Using mirror alimaven (http://maven.aliyun.com/nexus/content/groups/public/) for central (https://repo.maven.apache.org/maven2). [DEBUG] Extension realms for project org.apache.maven:standalone-pom:pom:1: (none) [DEBUG] Looking up lifecycle mappings for packaging pom from ClassRealm[plexus.core, parent: null] [DEBUG] Resolving plugin prefix spring-boot from [org.apache.maven.plugins, org.codehaus.mojo] [DEBUG] Creating adapter using nameMapper 'gav' and factory 'rwlock-local' [DEBUG] Could not find metadata org.apache.maven.plugins/maven-metadata.xml in local (D:\apache-maven-3.9.10\repository) [DEBUG] Skipped remote request for org.apache.maven.plugins/maven-metadata.xml, locally cached metadata up-to-date [DEBUG] Could not find metadata org.codehaus.mojo/maven-metadata.xml in local (D:\apache-maven-3.9.10\repository) [DEBUG] Skipped remote request for org.codehaus.mojo/maven-metadata.xml, locally cached metadata up-to-date [DEBUG] Could not find metadata org.apache.maven.plugins/maven-metadata.xml in local (D:\apache-maven-3.9.10\repository) [DEBUG] Could not find metadata org.codehaus.mojo/maven-metadata.xml in local (D:\apache-maven-3.9.10\repository) [DEBUG] Could not find metadata org.apache.maven.plugins/maven-metadata.xml in local (D:\apache-maven-3.9.10\repository) [DEBUG] Could not find metadata org.codehaus.mojo/maven-metadata.xml in local (D:\apache-maven-3.9.10\repository) [DEBUG] Using transporter HttpTransporter with priority 5.0 for http://maven.aliyun.com/nexus/content/groups/public/ [DEBUG] Using transporter HttpTransporter with priority 5.0 for http://maven.aliyun.com/nexus/content/groups/public/ [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for http://maven.aliyun.com/nexus/content/groups/public/ [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for http://maven.aliyun.com/nexus/content/groups/public/ Downloading from alimaven: http://maven.aliyun.com/nexus/content/groups/public/org/codehaus/mojo/maven-metadata.xml Downloading from alimaven: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/plugins/maven-metadata.xml Downloaded from alimaven: http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/plugins/maven-metadata.xml (10 kB at 9.7 kB/s) Downloaded from alimaven: http://maven.aliyun.com/nexus/content/groups/public/org/codehaus/mojo/maven-metadata.xml (21 kB at 19 kB/s) [DEBUG] Writing tracking file 'D:\apache-maven-3.9.10\repository\org\apache\maven\plugins\resolver-status.properties' [DEBUG] Writing tracking file 'D:\apache-maven-3.9.10\repository\org\codehaus\mojo\resolver-status.properties' [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.655 s [INFO] Finished at: 2025-06-12T18:31:25+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] No plugin found for prefix 'spring-boot' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (D:\apache-maven-3.9.10\repository), alimaven (http://maven.aliyun.com/nexus/content/groups/public/)] -> [Help 1] org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException: No plugin found for prefix 'spring-boot' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (D:\apache-maven-3.9.10\repository), alimaven (http://maven.aliyun.com/nexus/content/groups/public/)] at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve (DefaultPluginPrefixResolver.java:90) at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix (MojoDescriptorCreator.java:247) at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor (MojoDescriptorCreator.java:209) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments (DefaultLifecycleTaskSegmentCalculator.java:94) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments (DefaultLifecycleTaskSegmentCalculator.java:76) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:84) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283) at org.apache.maven.cli.MavenCli.main (MavenCli.java:206) at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104) at java.lang.reflect.Method.invoke (Method.java:565) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314) [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException [DEBUG] Shutting down adapter factory; available factories [file-lock, rwlock-local, semaphore-local, noop]; available name mappers [discriminating, file-gav, file-hgav, file-static, gav, static] [DEBUG] Shutting down 'file-lock' factory [DEBUG] Shutting down 'rwlock-local' factory [DEBUG] Shutting down 'semaphore-local' factory [DEBUG] Shutting down 'noop' factory
最新发布
06-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值