Maven 2 Maven将src/main/resources/services文件夹复制到/META-INF
编辑 好的,我现在可以更具体地说: 我的scr/main/resources中有一个META-INF文件夹,其中包含services/javax.annotation.processing.Processor 我的pom和我的一样。 如果我进行mvnclean安装,输出jar将只包含META-INF文件夹 但是如果我重命名文件夹服务,输出jar将包含我的类和META-INF文件夹以及新重命名的文件夹和他的内容 我想,对于普通的maven2用户来说,我有一个简单的问题。 我有一个简单的pom用于一个简单的子项目Maven 2 Maven将src/main/resources/services文件夹复制到/META-INF,maven-2,Maven 2,编辑 好的,我现在可以更具体地说: 我的scr/main/resources中有一个META-INF文件夹,其中包含services/javax.annotation.processing.Processor 我的pom和我的一样。 如果我进行mvnclean安装,输出jar将只包含META-INF文件夹 但是如果我重命名文件夹服务,输出jar将包含我的类和META-INF文件夹以及新重命名的文件夹和他的内容 我想,对于普通的maven2用户来说,我有一个简单的问题。 我有一个简单的pom用于一
<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>aida</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>aida-annotationProcessors</artifactId>
<packaging>jar</packaging>
<name>AIDA Annotation Processors</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
<!-- <resources> -->
<!-- <resource> -->
<!-- <directory>src/main/resources/services</directory> -->
<!-- <targetPath>META-INF/services</targetPath> -->
<!-- </resource> -->
<!-- </resources> -->
</build>
<dependencies>
</dependencies>
</project>
我的目标很简单:
我只想将src/main/resources/services/javax.annotation.processing.Processor文件复制到生成的jar的{root}/META-INF/services文件夹中
但是如果我取消对资源部分的注释,我的jar将只包含一个没有类的META-INF文件夹
你能帮我吗?这里有一些方法,但是看起来你做得很正确。查看该页面,确保没有出现任何小错误。以下是有关如何执行此操作的详细信息,但看起来您的操作是正确的。查看该页面,确保没有出现小错误。这是maven编译器插件中的一个错误/功能
一种解决方法是禁用包含处理器的项目的注释处理,-proc:none。这是maven编译器插件中的一个错误/功能
解决方法是禁用包含处理器的项目的注释处理,-proc:none。更灵活的解决方案是使用注释处理器生成服务/javax.annotation.processing.processor文件,这样,类就保持不变,如果项目依赖于其他注释处理器,则不需要额外的工作 在主要回购协议中:
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
一个更灵活的解决方案是使用注释处理器来生成services/javax.annotation.processing.processor文件,这样类就完好无损了,如果项目依赖于其他注释处理器,则不需要额外的工作 在主要回购协议中:
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>