`
墨香子
  • 浏览: 46306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用maven时遇到的一个问题

阅读更多
    学习maven时,尝试将javaee项目分成两个模块,总项目为server-side,其下面有两个子模块:web-lib和web-apps,其中web-lib只是保存所有的依赖的并没有任何的代码逻辑,web-apps才是真正的web项目。另外web-lib和web-apps均继承自server-side,web-apps依赖web-lib。其pom文件如下:

server-side 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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>zwh.ssh.maven</groupId>
    <artifactId>server-side</artifactId>
    <packaging>pom</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>server-side Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <build>
        <finalName>server-side</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <modules>
        <module>web-lib</module>
        <module>web-apps</module>
    </modules>
</project>


web-lib pom.xml
<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>zwh.ssh.maven</groupId>
        <artifactId>server-side</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>web-lib</artifactId>
    <packaging>jar</packaging>
    <name>web-lib Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
    <!-- 这里定义了很多依赖,与前面的文章基本相同,这里就省略了 -->
               
    </dependencies>
    <build>
        <finalName>web-lib</finalName>
    </build>
</project>


web-apps pom.xml
<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>zwh.ssh.maven</groupId>
        <artifactId>server-side</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>web-apps</artifactId>
    <packaging>war</packaging>
    <name>web-apps Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>zwh.ssh.maven</groupId>
            <artifactId>web-lib</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>web-apps</finalName>
        <plugins>
            <!-- jetty是一个servlet容器,类似于tomcat,配置该plugin之后,可以在项目中
调用mvn jetty:run-war直接运行这个web项目,默认端口是8080。plugin如果不添加version会报出WARNING -->
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.26</version>
            </plugin>
        </plugins>
    </build>
</project>


下面说一下今天遇到的问题,原来的项目是一个ssh项目,各种配置实用的xml文件,我今天想尝试实用annotation的方法配置,那么首先我就需要把hibernate-annotataions添加到项目中,前面也说了我的web-lib项目是用来保存所有的依赖的maven项目,所有就将该依赖添加到web-lib的pom项目下了,然后更改相关代码。然后运行我的web-apps项目,就出现错误了。报出找不到类的错误
Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity

然后整个一下午都在纠结这个问题,搜索了各种相关错误,各种百度谷歌,说是缺少一些jar包,但这些这些jar都在我项目里啊,可以通过eclipse看到这些依赖包的,怎么添加都报错,我将生成的web项目展开,发现hibernate-annotations及其的所有依赖包根据就没有添加在项目下,然后又各种头脑风暴,最后突然灵光一闪,我应该将整个项目install一下。然后就在server-sides上运行了mvn install方法,再次运行我的项目,终于不再出现错误了。

后来仔细想了想出错的原因,我的web-apps是依赖于web-lib的,然而maven依赖必须通过本地仓库或远程仓库才能找到依赖,我修改了web-lib项目的依赖但我的本地仓库仍是一样安装的web-lib项目,所以新添加的依赖会找不到。

经过一下午的折磨,得出一个教训,对于分模块的maven项目,修改了项目的依赖等操作时一定要将这个项目install一下
分享到:
评论

相关推荐

    maven项目搭建可能遇到的问题

    maven项目搭建可能遇到的问题,挺实用的。

    Maven包和遇到的问题总结

    在压缩包中,包含eclipse安装maven所需的maven包和在maven使用过程中遇到的一些问题总结。

    Intellij IDEA中使用maven filter遇到的问题

    NULL 博文链接:https://crazybackkom.iteye.com/blog/970527

    解决更新Maven项目遇到了问题

    更新Maven项目遇到了问题 无法计算建设计划:插件org。Apache Maven。插件:有资源插件 更新Maven配置错误,提供解决错误的资源

    maven多个下载源

    maven经常遇到下载jar包,下载不下来。或者很慢的情况。那是因为下载jar的源是国外源,所以很慢。这个源为开源中国的源。下载速度很快。

    创建Maven项目相关问题

    maven项目创建时相关问题,参照网络资源以及自己遇到问题解决

    maven的settings.xml配置

    maven的settings.xml配置,提供maven包下载位置,刚刚maven仓库镜像仓库下载。 &lt;localRepository&gt;D:/develop/apache-maven-3.6.0/repository &lt;id&gt;alimaven &lt;name&gt;aliyun maven &lt;url&gt;...

    maven搭建工程问题集锦

    搭建maven工程中遇到的问题,适合新手参考,少走弯路。谢谢。

    Eclipse整合Maven开发教程

    本文面向具有eclipse相关开发经验的技术人员,一步步说明如果在eclipse中集成Maven进行开发。本教程是入门级教程,由于本站发表文章实在不便,故将word文档直接上传了。 目录 Eclipse整合Maven开发教程 1 1. ...

    Maven_学习总结_全

    针对对初学者使用maven的遇到的问题的一些讲解 和学习的总结

    Maven常见问题解答

    一些使用中遇到的Maven常见问题解答

    maven编译pentaho-big-data-plugin遇到的所有问题解决

    maven编译pentaho-big-data-plugin遇到的所有问题解决,pentaho6.0

    maven3.6.3资源包

    idea 2021.03 maven 3.8.5 遇到下边问题 换成3.6.3 版本 解决 1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void ()' not ...

    Maven Build压缩打包(一)-maven插件开发

    本文是研究Maven压缩打包技术中的第一部分,主要介绍了如何开发Maven插件,参与maven build的打包过程。 并附上了学习过程中应注意的细节,以及遇到的问题及解决方法。

    MavenRunHelper 各版本集合

    使用maven管理依赖包时会遇到依赖冲突的问题,解决起来非常麻烦。MavenRunHelper插件作为解决冲突的利器,能够高效率的展示出冲突列表,快速解决冲突问题。由于网络等问题,常常无法下载插件。现提供IntelliI IDEA ...

    Maven build插件之Maven-assembly-plugin自定义打包

    ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的。 ● 能够自定义包含/排除...

    关于MAVEN仓库服务器的安装与一些maven相关配置

    文档总结了搭建maven私服管理器nexus时遇到的一些问题,建议各位使用nexus2.*版本; 文档描述了pom以及setting的一些配置

    Mac开发环境搭建之 apache-maven-3.5.3 MacOS版 免安装直接使用

    下载 Maven, 并解压到某个目录...如果遇到以下异常,重新编辑bash_profile文件,增加export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home后,并重新运行$ source ~/.bash_profile即可。

    maven配置步骤

    maven 在 eclipse中的配置 新手搭建maven工程,遇到maven配置问题,搭配完自己总结的

    maven2 plugin for eclipse

    需要一个包时通过 add dependancy.把它加进来以后Maven 就会在你在eclipse里指定的哪个Local Repository Folder 目录下找这个jar包。比如我设的目录是C:\Documents and Settings\er\.m2\repository ,如果找到,就...

Global site tag (gtag.js) - Google Analytics