我刚刚开始使用Maven,我在创建所有课程的JAR时遇到了麻烦。实际上,我必须包含位于WEB-INF/services/javax.annotation.processing.Processor
我已经测试了这个问题的不同问题,当我删除/services
目录时,JAR包含所有.class文件。
我读到它可能是一个错误的Maven文件夹结构,但问题发生在我有services
目录时。
以下是使用资源的pom.xml文件的摘录:
<resource>
<directory>${myRessources}</directory>
<includes>
<include>META-INF/**/*</include>
</includes>
</resource>
maven控制台告诉我资源已成功复制,所以我认为这部分不是问题。
有什么想法吗?
答案 0 :(得分:2)
嘿,你想用这样的东西:
<build>
<sourceDirectory>src/main/java (or your .java you want to compile)</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources/META-INF/</directory>
<targetPath>META-INF</targetPath>
</resource>
</resources>
</build>
sourceDirectory告诉maven要编译什么并放入目标文件夹(以及jar中)。然后资源说取我的META-INF /文件夹中的所有内容并将其放在jar文件的META-INF文件夹中。
答案 1 :(得分:1)
我调查并解决了问题:这是一个错误 - &gt; http://jira.codehaus.org/browse/MCOMPILER-97我添加了编译器选项-proc:none,现在工作正常。希望它能帮助其他人!
答案 2 :(得分:0)
对于解决* .jar或* .war文件的解决方案是什么,在创建存档文件后,例如用WinRAR打开它,并检查其内容。
在此之后,您可以在pom.xml
文件中包含必要的资源,如之前所述。