【趟坑】公共引用的jar包 pom的配置方法

http://www.cnblogs.com/viewcozy/p/4789877.html

接上一篇 ,内部moudule生成jar的方式 上一篇已经实现了,想把jar作为公共的部分让任何项目都可以引用,结果就遇到了好多问题,

感慨一下,搞技术没有捷径,需要不断的遇到坑或者阅读大量的资料和动手实践才会理解深刻, 复习重复操作n遍对于掌握技术起关键作用,搞清楚并不代表以后能记住,copy重复就是生产力

快速干,不吃饭也要干、提高效率  才能有所收获

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>oxgren</artifactId>
        <groupId>oxgren</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>oxgren-common</artifactId>
    <dependencies>

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
    </dependencies>
</project>

如果是带有parent 就会产生这种效果,官网的最佳实践是不会让你遇到这种坑的  遇到了会了解更多的知识

修改成这样

<?xml version="1.0" encoding="UTF-8"?>
<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">

        <groupId>oxgren</groupId>
        <version>1.0-SNAPSHOT</version>
       <artifactId>oxgren-common</artifactId>
       <modelVersion>4.0.0</modelVersion>

    <dependencies>

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
    </dependencies>
</project>

再去引用

<dependency>
            <groupId>oxgren</groupId>
            <artifactId>oxgren-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

    </dependencies>

问题解决了

曾怀疑过命名空间冲突

从 Encoding.Base64Hander => oxgren.common.Encoding.Base64Hander 后也没用。
时间: 2024-10-10 16:36:55

【趟坑】公共引用的jar包 pom的配置方法的相关文章

运行jar应用程序引用其他jar包的四种方法

方法一.使用Bootstrap Classloader来加载这些类. 我们可以在运行时使用如下参数: -Xbootclasspath:完全取代系统Java classpath.最好不用.-Xbootclasspath/a: 在系统class加载后加载.一般用这个.-Xbootclasspath/p: 在系统class加载前加载,注意使用,和系统类冲突就不好了. win32     java -Xbootclasspath/a: some.jar;some2.jar;  -jar test.jar

运行jar应用程序引用其他jar包的四种方法(转)

(1)在Eclipse中操作 上面的截图中eclipse的版本是: (2)下面的内容是相关原理,及手工完成此目标的操作细节: 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFES

maven工程引用外部jar包

maven工程经常回遇到引用外部jar包,需要先安装在jar包,然后再在工程中pom.xml文件中添加依赖. 示例: 命令行中运行: mvn install:install-file -Dfile=E:\SVN\roadtask\src\main\webapp\WEB-INF\lib\smartupload.jar -DgroupId=org.smartupload -DartifactId=smartupload -Dversion=1.0 -Dpackaging=jar pom.xml中添加

如何将Maven项目中引用的Jar包复制到一个lib文件夹中

Maven的非web项目在执行时需要引用很多jar包,这时候通常的做法是将这些jar包统一放到lib目录中,maven的dependency插件可以帮我们做这件事情. 我们需要在pom文件的build节点的plugins节点内添加一个plugin,plugin内容如下: <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependen

利用命令行引用外部jar包以使程序正常运行的4种方法

声明:本博客为原创博客,未经允许,不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo时我比较喜欢用UltraEdit或记事本写完后,直接利用命令行进行编译和运行.这样的好处就是方便快捷.相信有这个习惯的人应该还大有人在.但是如果要引用外部jar包,应该如何操作呢?在写JDBC的一些Demo时,由于要利用jar包来加载相应的数据库,每个Demo都用到了外部jar包,所以特地总结了一下

利用命令行引用外部jar包以使程序正常执行的4种方法

声明:本博客为原创博客.未经同意.不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/30976069 平时写一些小的Java Demo时我比較喜欢用UltraEdit或记事本写完后,直接利用命令行进行编译和执行.这种优点就是方便快捷.相信有这个习惯的人应该还大有人在. 可是假设要引用外部jar包.应该怎样操作呢?在写JDBC的一些Demo时.因为要利用jar包来载入对应的数据库.每一个Demo都用到了外部jar包,所以特地总结了一

Eclipse 将projectBuild Path中引用的jar包自己主动复制到WEB-INF下的lib目录下

在用用 Eclipse进行Java Web开发时,web应用中引用的jar须要复制到WEB-INF下的lib目录下,否则常常出现ClassNotFound异常. 通过以下方法,能够不用手动拷贝jar包,Eclipse自己主动将projectBuild Path中引用的jar包自己主动复制到WEB-INF下的lib目录下,步骤例如以下: 1.右击project.选择Properties(属性) 选择Deployment Assembly.例如以下图: 2.点击右側Addbutton,例如以下图:

自建运行jar包引用外用jar包

大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFEST.MF里面添加如下一句话: Main-Class: test.someClassName 然后我们可以在控制台里输入java

Eclipse 将工程Build Path中引用的jar包自动拷贝到WEB-INF下的lib文件夹下

在用用 Eclipse进行Java Web开发时,web应用中引用的jar需要拷贝到WEB-INF下的lib文件夹下,否则经常出现ClassNotFound异常. 通过下面方法,可以不用手动拷贝jar包,Eclipse自动将工程Build Path中引用的jar包自动拷贝到WEB-INF下的lib文件夹下,过程如下: 1.右击工程,选择Properties(属性) 选择Deployment Assembly,如下图: 2.点击右侧Add按钮,如下图: 3.选择Java Building Path