自定义可以用maven引入的jar包

1、步骤简介

自定义一个可以用maven引入的jar包需要分为两步
1、制作一个普通的jar包。
2、将普通的jar包制作成可以用maven引入的jar包。
3、引入工程并测试。

2、具体的操作过程

2.1、制作普通的jar包

我们先使用IDEA创建一个普通的maven项目,并写了一个工具类,里面有一个jarTest测试方法,如下图所示:

在这里插入图片描述

我们使用右边的packet工具打一个jar包,如下图所示:

在这里插入图片描述

就这样,一个普通的jar包就已经制作好了。

2.2、将普通的jar包制作成一个可以用maven引用的jar包

打开cmd,使用下面这行命令

mvn install:install-file -DgroupId=cool.ale   -DartifactId=ale-util -Dversion=0.0.1  -Dfile=E:\JarTest\ale-util\target\ale-util-1.0-SNAPSHOT.jar    -Dpackaging=jar

下面对上面命令的含义解释一下:

命令含义
-DgroupId=cool.ale生成的包名,也就是pom依赖的 groupId
DartifactId=ale-utiljar包名称,也就是pom依赖的 artifactId
-Dversion=0.0.1版本号,也就是pom依赖的 version
-Dfile=E:\JarTest\ale-util\target\ale-util-1.0-SNAPSHOT.jar2.1步骤中生成的普通的jar包路径,我这里用的是绝对路径

执行完上述命令之后,如下图所示则代表执行成功,且生成的新jar包路径如图中所示:

在这里插入图片描述

我们进到新路径可以可以看到如下几个文件:

在这里插入图片描述

3、测试jar包是否制作正确

3.1、拷贝生成的jar包

首先我们将上面制作的jar包从 cool 文件夹开始复制,整个拷贝到新工程本地maven仓库的根目录下,如下图所示:

在这里插入图片描述

拷贝之后:

在这里插入图片描述

可以看一下新工程的maven配置:

在这里插入图片描述

3.2、写测试类测试

使用下面pom依赖引入即可

<dependency>
    <groupId>cool.ale</groupId>
    <artifactId>ale-util</artifactId>
    <version>0.0.1</version>
</dependency>

测试类:

public class JarTest {
    public static void main(String[] args) {
        BeanUtil.jarTest();
    }
}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# Nacos2.2版本数据库适配插件 ## 一、插件概述 ### 1.1、简介 从2022年12月14日发布的Nacos2.2正式版本开始,Nacos提供了数据源扩展插件,以便让需要进行其他数据库适配的用户自己编写插件来保存数据。当前项目插件目前已简单适配Postgresql,并抽象了一套常见的兼容项的方言类,开发者可以基于该设计,实现自定义分页逻辑即可。 如需Nacos2.1支持,请移步个人之前创建这个仓库,该仓库目前支持PostgreSQL、Oracle、达梦,简单的操作基本可以实现。 wuchubuzai2018/nacos-multidatasource 当前项目基于Nacos2.2版本的扩展插件口进行开发。 ### 2.2、插件工程结构说明 nacos-datasource-plugin-ext工程主目录 ----nacos-datasource-plugin-ext-base工程设计为数据库插件操作的适配抽象。 ----nacos-all-datasource-plugin-ext工程计划可打包所有适配的数据库插件 ----nacos-postgresql-datasource-plugin-ext工程可打包适配Postgresql的数据库插件 ## 二、下载和使用 IDEA导入时导入nacos-datasource-plugin-ext这个目录作为根目录即可。 ### 2.1、插件引入 **方式一:源码方式** 使用postgresql作为依赖引入到Nacos主分支源码中,使用Maven提前将当前工程Install到Maven仓库,然后在Pom.xml中引入如下依赖: ```xml <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-postgresql-datasource-plugin-ext</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> ``` 或引入all模块。 **方式二:打包形式引入** 在Nacos2.2的发布包环境下,下载当前插件项目源码,打包为jar包,将该文件放到nacos主目录下的plugins文件夹中,默认会使用Nacos的loader.path机制指定该插件的路径,打包插件可选择nacos-postgresql-datasource-plugin-ext打包即可。postgresql模块的打包默认会包含postgresql的jdbc驱动类和base依赖。 ### 2.2、修改数据库配置文件 在application.properties文件中声明postgresql的配置信息: ```java spring.datasource.platform=postgresql db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=nacos_java db.user=nacos db.password=nacos db.pool.config.driverClassName=org.postgresql.Driver ``` ### 2.3、导入Postgresql的数据库脚本文件 导入nacos-postgresql的脚本文件,脚本文件在nacos-postgresql-datasource-plugin-ext/src/main/resources/schema文件夹下面. 上面操作完成后,启动Nacos即可。 ## 三、其他数据库插件开发 可参考nacos-postgresql-datasource-plugin-ext工程,新创建Maven项目,实现AbstractDatabaseDialect类,重写相关的分页操作逻辑与方法,并创建相应的mapper实现,减少了适配的成本。 目前对于Oracle、达梦数据库,仍然需要修改Nacos2.2的主分支代码,因为要兼容默认的命名空间ID为空的查询情况,社区官网未处理。 最近有时间,将进行Nacos主分支源码上关于Nacos的Oracle的兼容性适配,目前可以用Nacos2.1的改造代码进行处理。
Maven2 的新特性.7z 文档选项 打印本页 将此页作为电子邮件发送 级别: 初级 键 胡 ([email protected]), 西安交通大学硕士 伟红 胡 ([email protected]), 工程师,IBM 区域合作伙伴支持中心, IBM 2006 年 2 月 23 日 本文主要阐述 Maven2 的新特性,这些新特性可以大大地缩短了开发管理中的工作量,使得开发人员将精力集中在实际的业务问题上。 Maven 出现到现在也有很长时间了,初识它的感觉至今仍清晰的印在脑海中。现在想来,当时从 Ant 移情 Maven 的想法其实很朴素,就是因为 Maven 可以以网站的形式展现与项目相关的信息,如开发人员列表、各种 Report。这种方式为项目的构建带来了极大的方便,尤其是 Report 的。试想对于产生的 Junit-Report、JavaDoc、CheckStyle、PMD 等报告,如果没有一个统一的入口,每次切换目录是多么令人厌烦的事情! Maven 无疑是相当成功的,这一点从越来越多的开源项目开始使用 Maven 就可以看出。Maven 取得成功的原因很简单:在简化构建脚本的同时,功能并没有缩水,反而有所增强;提供汇集项目信息的工具,并以相当友好的方式呈现;丰富的插件简化了工作。如此有力的工具出现,自然是争相使用。 新特性 如今 Maven2 已经推出,Maven 的官方网站称,Maven2 相对于 Maven1 是一个相当大的转变,甚至不惜牺牲兼容性来达到这一目的。(为了 Maven1 的用户着想,Maven1 仍在继续他的使命。)如此大的变动到底换来了什么样的结果? 1. 更快、更简单 比起 Maven1 那不急不慢的运行速度,Maven2在速度上有了质的飞跃,甚至与Ant相比也毫不逊色(当然,下载不算)。除此之外,"简化工作,使用业界公认的最佳实践"也是是 Maven2 的另一大主题,其他的新特性无处不在体现 Maven2 为简化工作而做出的努力。 2. 更少的配置文件 Maven1 和 Maven2 主要配置文件的对比: • Maven1:project.xml、maven.xml、project.properties和build.properties。 • Maven2:pom.xml和settings.xml。 POM是Maven的核心对象模型,在Maven2中POM已由project.xml转移到pom.xml中使用,版本也由3升级为4。对于项目,一般只需要pom.xml就行了。 在Maven2中不需要也不提倡使用maven.xml,原因如下: • plugin的易用性的增强。 • 散布于maven.xml中的内容难以在不同项目间共享,也不利于维护。在Maven2中建议使用自定义的plugin来封装这些内容。 如果仍期望能够使用类似maven.xml的功能,如<preGoal>,请参考Inserting non-standard build steps using preGoals and postGoals。 在Maven2中,配置使用settings.xml,它取代了原有的project.properties和build.properties。配置在Maven2中存在两种级别: • 用户级,针对操作系统登录用户而言。一般在$home/.m2/,对于windows用户,就是目录:C:\Documents and Settings\用户名\.m2\settings.xml。 • 全局级:一般在%M2_HOME%/conf/settings.xml,M2_HOME是Maven2的根目录环境变量名。 在settings.xml中可以配置,如本地Repository、proxy等等,关于settings.xml的结构可以从Maven的官方网站上获取。 3. Plugin语言更换 在Maven2中,编写plugin的语言由jelly变更为Java和BeanShell。Java在速度上更有优势,而且开发人员的熟悉程度更高。对于其他的流行脚本,如groovy,Maven的官方网站的意见是,等待其更成熟时再考虑 。 4. 提供预定义的目录模板 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下: 使用目录模板,可以使pom.xml更简洁。因为Maven2已经根据缺省目录,预定义了相关的动作,而无需人工的干预。以resources目录为例: • src/main/resources,负责管理项目主体的资源。在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中,为以后的打包提供了方便。 • src/test/resources,负责管理项目测试的资源。在使用Maven2执行test-compile之后,这个目录中的所有文件及子目录,会复制到target/test-classes目录中,为后续的测试做好了准备。 这些动作在 Maven1 中,是需要在 maven.xml 中使用<preGoal>或<postGoal>来完成的。如今,完全不需要在pom.xml中指定就能够自动完成。在src和test都使用resources,方便构建和测试,这种方式本就已是前人的经验。通过使用Maven2,使这个经验在开发团队中得到普及。 创建标准目录模板,可以通过如下命令: mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=codelineCommons groupId和artifactId的含义与Maven1中的含义一样,参数artifactId的值会作为项目根目录的名字。除了建立相应的目录之外,Maven2还会创建缺省的pom.xml。 Maven2也考虑到:不同类型的项目需要拥有不同的目录结构。如创建web项目,可以使用命令: mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp 5. 生命周期的引入Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段: • validate,验证工程是否正确,所有需要的资源是否可用。 • compile,编译项目的源代码。 • test-compile,编译项目测试代码。 • test,使用已编译的测试代码,测试已编译的源代码。 • package,已发布的格式,如jar,将已编译的源代码打包。 • integration-test,在集成测试可以运行的环境中处理和发布包。 • verify,运行任何检查,验证包是否有效且达到质量标准。 • install,把包安装在本地的repository中,可以被其他工程作为依赖来使用 • deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。 • generate-sources,产生应用需要的任何额外的源代码,如xdoclet。 如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test。 6. 新增Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值: • compile,缺省值,适用于所有阶段,会随着项目一起发布。 • provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 • runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 • test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 • system,类似provided,需要显式提供包含依赖的jarMaven不会在Repository中查找它。 <scope>的使用举例: <dependency> <groupId>hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.0.3</version> <scope>test</scope> </dependency> 7. 传递依赖,简化依赖管理 在Maven1中,需要把依赖所需要的包也一并列出。这对于使用类似如Hibernate的用户来说所操的心太多了,而且也不方便。在Maven2中实现了传递依赖,如此对于Hibernate所依赖的包,Maven2会自动下载,开发人员只需关心Hibernate即可。 注意:只有得到Maven支持的依赖,通常是plugin形式出现,才能获得这个特性。而且对于一些老的plugin,可能由于时间的关系不支持传递依赖。如至少在Maven 2.0.1中,对于Hibernate 2.1.2,仍然需要显式列出Hibernate 2.1.2所依赖的包。 回页首 使用简介 安装Maven2的步骤非常简单:首先从Maven官方网站下载相应的软件包,目前是Maven 2.0.1;然后解压,并设置环境变量M2_HOME= Maven2的解压安装目录;最后将%M2_HOME%/bin添加到path中,方便Maven在任何目录下运行。 Maven2的运行命令是mvn,使用mvn -h可以获得相关的帮助信息。常用情形: • 创建Maven项目:mvn archetype:create • 编译源代码:mvn compile • 编译测试代码:mvn test-compile • 运行测试:mvn test • 产生site:mvn site • 打包:mvn package • 在本地Repository中安装jar:mvn install • 清除产生的项目:mvn clean 或许是由于刚刚推出的缘故,Maven2目前还是有一些不尽如人意的地方。尤其是Report部分的plugin,有的是因为目前还没有,如junit-report。有的则是一些莫名其妙的问题,如checktyle和pmd,在本地locale下都无法正常工作。以pmd举例,在产生PMD报告时会抛出如下异常: java.util.MissingResourceException: Can't find bundle for base name pmd-report, locale zh_CN at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle .java:839) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:808) at java.util.ResourceBundle.getBundle(ResourceBundle.java:702) …… 幸运的是,Maven2一出现就备受关注,要不了多长时间,诸如此类的问题应该就会很快解决。 回页首 结论 Maven2在Maven1的优势基础之上,又向前迈进了一大步。它提供的这些新特性大大地缩短了开发管理中的工作量,使得开发人员将精力集中在实际的业务问题上。而且这些新特性对于简化使用,普及最佳实践,也起到了积极的作用。 参考资料 • Inserting non-standard build steps using preGoals and postGoals http://docs.codehaus.org/display/MAVEN/Maven2+Goal+Decoration • Maven官方网站 http://maven.apache.org/ • Maven支持的依赖列表 http://www.ibiblio.org/maven2 • 在 Eclipse 中利用 Maven • 项目管理: Maven 让事情变得简单 作者简介 胡键,西安交通大学硕士,2000年毕业后一直从事软件开发。2002年开始使用Java,在平时的项目开发中经常采用OpenSource的工具,如Ant、Maven、Hibernate、Struts等,目前正在研究信息集成方面的规范和技术。可以通过[email protected]与他取得联系,或访问个人blog:http://blog.donews.com/foxgem/。 胡伟红,西安交通大学硕士,目前就职于IBM 区域合作伙伴支持中心。主要负责Websphere产品的支持。对开源的项目有很大的兴趣。可通过 [email protected] 与她联系。
【资源介绍】 Javaweb课程作业基于Hadoop的中文词频统计工具源码+使用说明.zip 一、Linux下配置hadoop集群(伪分布式或完全分布式) 1、https://blog.csdn.net/z1148059382/article/details/89459182 2、Windows下管理HDFS的神器:HDFS Explorer 二、在Windows环境下通过IDEA远程连接Linux里的Hadoop并运行MapReduce程序 1、下载winutils.exe和hadoop.dll https://github.com/steveloughran/winutils 2、将hadoop.dll放到C:\windows\System32里 3、将hadoop-2.7.7.tar.gz(二进制包)解压到Windows的E:\里 4、将winutils.exe放到E:\hadoop-2.7.7\bin里 5、将Linux里配置好的hadoop的配置文件目录里的log4j.properties和core-site.xml复制到项目根目录(IDEA的maven项目的话是放到resources目录里,下同) 6、往HDFS里/user/joe/wordcount/input传要统计的文件(不要创建output文件夹) 7、执行程序 三、中文分词能力(使用IKAnalyzer分词器) 1、下载IKAnalyzer2012_u6.zip(最新版) https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ik-analyzer/IKAnalyzer2012_u6.zip 2、由于maven库里没有ik的坐标,所以我们需要手动将IKAnalyzer2012_u6.zip里的jar包添加到本地Maven仓库里(也可以直接引入到项目的外部jar包库中) (1)cmd,进入放置jar的文件夹 (2)mvn install:install-file -DgroupId=org.wltea.ik-analyzer -DartifactId=ik-analyzer -Dversion=2012_u6 -Dpackaging=jar -Dfile=IKAnalyzer2012_u6.jar (3)在项目的pom.xml里用以下内容引入依赖: <!-- IKAnalyzer --> <dependency> <groupId>org.wltea.ik-analyzer</groupId> <artifactId>ik-analyzer</artifactId> <version>2012_u6</version> </dependency> <!-- lucene-core --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>3.6.0</version> </dependency> 3、将IKAnalyzer.cfg.xml和stopword.dic复制到项目根目录 4、配置用户自定义词库 (1)项目根目录下创建MyDic.dic,在里边打单词,一行一个 (2)修改IKAnalyzer.cfg.xml <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict">MyDic.dic;</entry> 【备注】 该项目是个人毕设/课设/大作业项目,代码都经过本地调试测试,功能ok才上传,高分作品,可快速上手运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载使用,也欢迎交流学习~

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值