我有一个带有* .java文件的源根,但我不希望它们被编译。相反,* .java文件应该原样复制到jar中。用例是* .java文件是模板,因此应该按原样保存。
为了实现这一点,我尝试从编译阶段排除源文件夹,我对Tycho OSGi编译器插件的官方文档感到困惑。它说我可以使用参数excludeResources,但我真的不知道如何处理所有这些参数类型。 pom.xml
是一个结构化文本文件,而不是源文件,这就是为什么我不理解如何使用java.util.Set
作为参数的原因。
我的POM是这样的:
...
<build>
<plugins>
...
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>0.21.0</extensions>
<configuration>
<excludeResources>
<!-- Set of folders consisting of a source folder named "res"
which should be excluded completely from compilation -->
</excludeResources>
</configuration>
</plugin>
</plugins>
</build>
这是一种正确的方法吗?如果是,我将如何完成配置?
答案 0 :(得分:1)
尝试使用此类内容删除任何&#34; res&#34;文件夹和文件:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<excludeResources>
<excludeResource>**/res</excludeResource>
</excludeResources>
</configuration>
</plugin>
或者这个,或者,例如,包括&#34; res&#34;文件夹和排除.jar文件:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<includes>
<include>res</include>
</includes>
<excludes>
<exclude>**/*.jar</exclude>
</excludes>
</configuration>
</plugin>
或者,排除所有不是&#34; res&#34;文件夹:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<excludeResources>
<excludeResource>!**/res</excludeResource>
</excludeResources>
</configuration>
</plugin>
答案 1 :(得分:0)
如果要从编译中排除整个源根文件夹,只需将其添加到build.properties中的任何src。*条目,请参阅[1]
另一方面,如果要在生成的jar中的源根文件夹中包含* .java文件,请将根文件夹添加到build.properties中的bin.includes列表中。
excludeResources与您的问题无关,因为您链接的文档说:
“非java资源文件的排除过滤器列表,不应复制到输出目录。”