首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Maven将src/main/resources/services文件夹复制到/ META-INF

在Maven项目中,将src/main/resources/services文件夹复制到META-INF目录下可以采用以下步骤:

  1. pom.xml文件中添加如下配置:<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> <configuration> <directory>src/main/resources</directory> <includes> <include>services/**</include> </includes> <outputDirectory>META-INF</outputDirectory> </configuration> </plugin> </plugins> </build>这个配置将src/main/resources/services文件夹下的所有文件复制到META-INF目录下。
  2. 执行Maven命令:mvn clean installMaven将创建META-INF/services目录,并将src/main/resources/services目录下的所有文件复制到META-INF/services目录下。
  3. 在代码中使用InputStream读取文件内容,例如:InputStream in = getClass().getResourceAsStream("services/MyService.properties"); Properties props = new Properties(); props.load(in);这个示例从META-INF/services目录下读取MyService.properties文件,并将其内容存储在props对象中。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Lombok原理分析与功能实现

那么如何在调用的时候不用加参数呢,其实我们知道java在编译的时候会去资源文件夹下读一个META-INF文件夹,这个文件夹下面除了MANIFEST.MF文件之外,还可以添加一个services文件夹,我们可以在这个文件夹下创建一个文件...好了,我们先删除App.java和compile.sh,添加下META-INF文件夹,当前目录结构应该是这样的: . ├── pom.xml ├── src │   └── main │   ├... 我们知道maven构建的第一步就是调用maven-resources-plugin插件的resources命令,resources文件夹复制到target.../classes中,那么我们配置一下resources标签,过滤掉META-INF文件夹,这样在编译的时候就不会找到services的配置了。...然后我们在打包前(prepare-package生命周期)再利用maven-resources-plugin插件的copy-resources命令把services文件夹重新拷贝过来不就好了么。

42120

maven依赖定义顺序到Java spi机制,这些你忽略了的细节

二、maven相同jar包的依赖顺序 我们在工作中的项目都是分模块的,而且模块之间又互相依赖,这个时候我们可能会引入相同的依赖 ,这时maven取那个依赖呢?...hibernate-validator是在org.apache.bval.jsr303.ApacheValidationProvider之后的,这样,hibernate-validator的文件就不会去覆盖META-INF.../services下的javax.validation.spi.ValidationProvider文件。...创建一个文件夹: 在项目的\src\main\resources\下创建\META-INF\services目录,类似上面hibernate-validator的文件夹。...hibernate-validator的文件的META-INF/services: 3.文件夹下增加配置文件: 在上面META-INF\services的目录下再增加一个配置文件,这个文件名必须以接口的全限定类名保持一致

35130

Java-SPI机制

例如:JDBC的实现mysql就是通过maven被依赖进来。 那么问题来了,SPI的接口是Java核心库的一部分,是由引导类加载器(Bootstrap Classloader)来加载的。...2.创建一个文件夹 在项目的\src\main\resources\下创建\META-INF \services目录(笔者在网上找了很多文章,很多都没有告知具体这个文件夹放在哪,放在其他位置下无法加载得到...) 3.文件夹下增加配置文件 在上面META-INF \services的目录下再增加一个配置文件,这个文件必须以接口的全限定类名保持一致,例如:com.jiaboyan.test.HelloService...5.使用JDK来载入 编写main()方法,输出测试接口。使用JDK提供的ServiceLoader.load()来加载配置文件中的描述信息,完成类加载操作。 ?...\services目录下: com.jiaboyan.test.impl.HelloService1Impl com.jiaboyan.test.impl.HelloService2Impl 编写main

1.1K40

Java EE7和Maven工程入门(3)

文件夹的名字为sample-services。这个pom看起来就是这样。就目前而言,最终和下面的内容差不多: ?...按照惯例,Maven负责大多数东西。maven的ejb插件踢开,因为我们已经定义了需要此模块的包是“ejb”。 我们的工程结构看起来是这个样子的: ?...由于这个模块“主管”我们的域对象,所以还有另外一个我们需要一起打包的东西,一个叫做persistence.xml的xml描述符。它定义了我们的应用连接的数据源。...从包装的角度来看,现在你需要做的就是在src/main/resources文件夹下新建一个名为META-INF文件夹,并在里面放置persistence.xml文件,如下图所示: ?...如果你按照这些帖子来并且你使用一个更简单的工具,例如一个简单的文本编辑器来写的你的代码,那么你就必须自己创建src/main目录结构。

41510

记一次 JDK SPI 配置不生效的问题 → 这么简单都不会,还是回家养猪吧

/main/resources/ 下建立目录: /META-INF/services ,位置和名字都必须严格按这个来,一字都不能差     2.2 在 /META-INF/services 目录下创建一个以接口全限定类名为名的文件...: com.qsl.service.Animal ,没有额外的后缀     2.3 接口实现类的全限定类名写入到 2.2 创建的文件中,一个实现占一行   3、ServiceLoader 加载     ...从源码来理解slf4j的绑定,以及logback对配置文件的加载 中的问题1   3、Spring SPI Spring 有自己的 SPI 实现机制,和 JDK SPI 略有不同 Spring 是在 src.../main/resources/META-INF 目录下创建 spring.factories ,里面以键值对的方式存放多个实现,类似如下   4、Dubbo SPI Dubbo 又有自己的一套实现...本着快速解决问题的目的,我换了一种实现方式,采用 Spring SPI   结果依然是有问题,同样是读不到 spring.factories 中的配置   正在一筹莫展之际,直觉告诉我是不是 maven

74020

Gradle插件开发-上传Apk到Bugly

前言 上一篇文章已经给大家详细介绍了如何通过Gradle将我们开发好的Library上传到JCenter,基本上就是一系列配置,最后通过Gradle脚本Library打包成jar或者aar包上传到maven...第4步:在新建的module中新建文件夹src,接着在src文件目录下新建main文件夹,在main目录下新建groovy目录,这时候groovy文件夹会被Android识别为groovy源码目录。...除了在main目录下新建groovy目录外,你还要在main目录下新建resources目录,同理resources目录会被自动识别为资源文件夹。...resources目录下新建文件夹META-INFMETA-INF文件夹下新建gradle-plugins文件夹 步骤2:配置gradle apply plugin: 'groovy' apply plugin...source = 'src/main/groovy' } task groovydocJar(type: Jar, dependsOn: groovydoc) { classifier

1.4K60

修改和编译spring源码,构建jar(spring-context-4.0.2.RELEASE)

maven的本地仓库,一般在用户目录的.m2文件夹下; 解压jar包,准备材料 在maven的本地仓库中,找到spring-context的目录后,里面的spring-context-4.0.2.RELEASE.pom...,spring-context-4.0.2.RELEASE-sources.jar,spring-context-4.0.2.RELEASE.jar这三个文件都复制到一个新建的文件夹中,然后spring-context...进入刚才解压的spring-context-4.0.2.RELEASE-sources.jar的文件夹,把里面的org文件夹整个都复制到新建的maven工程的java文件夹下,如下图所示: ?...META-INF和xsd文件在这个解压的文件夹中可以找到; 先是META-INF,在spring-context-4.0.2.RELEASE.jar的解压目录中,把META-INF文件夹复制到新建的maven...工程的resources文件夹下,如下图所示: ?

73250

Java的SPI机制

\main\resources\下增加services目录,然后再增加一个文件这个文件是前面的接口的包名+接口名,例如:org.hadoop.java.IService ?...有点类似IOC的思想,就是装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。...2 SPI具体约定 java spi的具体约定为:当服务的提供者,提供了服务接口的一种实现之后,在jar包的META-INF/services/目录里同时创建一个以服务接口命名的文件。...而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。...主要是从META-INF/services这个目录下的配置文件加载给定接口或者基类的实现,ServiceLoader会根据给定的类的full name来在META-INF/services下面找对应的文件

28830

CAS5.3.9服务安装

一、什么是maven的overlay overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件覆盖掉其他项目的同名文件。...(如果有个别jar下载不下来,就手动去下载,然后放到对应的本地jar包中) 3.在项目中添加src/main/java和src/main/resources目录,并将src/main/java设置为代码文件根目录...,src/main/resources设置为资源文件根目录。...4.overlays目录下的WEB-INF/classes/目录中的application.properties文件复制到src/main/resources中.相同的文件名,我们项目中的application.properties...复制到src/main/resources下,把Apereo-10000002.json删除,修改HTTPSandIMAPS-10000001.json里面的内容,"serviceId" : "^(https

38120
领券