c04s31602 2014-08-06 09:29 采纳率: 0%
浏览 2102

m2eclipse多模块两个问题的解决和疑问

使用Eclipse做开发,在一个workspace中建立三个项目,parent、A、B,其中A和B都继承与parent,A是一个webapp依赖B。
出现的问题:
1.用jetty或tomcat启动A,报错找不到parent,在A的pom文件中设置了,错误消失,但出现另一个错:找不到B。
解决方法:分别对parent和B做了install
2.项目中用到了mybatis,修改了B中的mybatis的xml文件,重启jetty或tomcat发现没有加载修改的内容。
解决方法:install一下B

疑问:为什么两种情况下都需要install?在启动jetty或tomcat时候已经勾选了Resolve Workspace artifacts了,是不是应该从workspace依赖啊,install之后解决问题岂不是说明实际从本地库中依赖了吗?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 10:43
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    1. 如果你设置了一个依赖,那么它会在你的项目的构建过程中被自动添加到你的工程中。

      假设你有如下Maven项目:

    <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.example</groupId>
       <artifactId>maven-samples</artifactId>
       <version>1.0-SNAPSHOT</version>
       <packaging>pom</packaging>
    
       <properties>
           <java.version>1.8</java.version>
       </properties>
    
       <build>
           <plugins>
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-compiler-plugin</artifactId>
                   <configuration>
                       <source>${java.version}</source>
                       <target>${java.version}</target>
                   </configuration>
               </plugin>
           </plugins>
       </build>
    </project>
    
    这个项目有一个名为`com.example/my-project`的子项目,并且包含一个名为`MyProjectPom.xml`的`pom.xml`文件,这个文件定义了我们的项目结构和依赖关系。
    
    在这个例子中,我们有以下依赖:
        * `<dependency>`标签用于指定依赖关系,例如:
            ```xml
            <dependency>
                <groupId>com.example</groupId>
                <artifactId>my-parent</artifactId>
                <version>1.0-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            ```
        * `<scope>`标签用于指定依赖项的范围,例如:
            ```xml
            <dependency>
                <groupId>com.example</groupId>
                <artifactId>my-parent</artifactId>
                <version>1.0-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            ```
    
    当我们运行`mvn clean install`命令时,`my-parent`会被编译并导入到`com.example.my-project`的项目中。
    
    1. 在你的项目中使用了mybatis,并且你想让mybatis在启动jetty或者tomcat时能够找到并使用配置文件,你可以通过在你的项目中添加以下依赖:
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.46</version>
      </dependency>
      
      然后在你的mybatis-config.xml文件中添加以下内容:
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
      <!-- MyBatis Configuration -->
      <configuration>
          <mappers>
              <!-- 指定要使用的Mapper接口类 -->
              <mapper resource="com/example/my-mapper.xml"/>
          </mappers>
      </configuration>
      
      一旦这些依赖和配置被添加到你的项目中,当jettytomcat启动时,它们就会被解析并应用到你的项目中,从而使得mybatis能够在你的应用程序中正常使用。

    如果你在项目中使用的是其他数据库驱动(比如druid),你也需要确保它们也正确地被引入到你的项目中,并且在启动jettytomcat时被解析并应用到你的项目中。

    评论

报告相同问题?